上一篇隨筆談了談單鏈表是什么東西,然后進行了初始化,這篇隨筆就開始對其進行操作了,首先是增,刪,改,查的增,
增,顧名思義就是要增加新的元素,單鏈表是鏈式的,那就要考慮怎么去加新元素,有三種,從頭部添加,從尾部添加,從中間添加,先說說從尾部添加,這個比較好理解,直接在尾部放一個結點然后連起來就好了,
1、尾插法,從尾部添加節點,


步驟順其自然就來了:
①要想添加節點就先新建一個節點,即將成為鏈表的尾結點,
②找到尾部,也就是當前鏈表最后一個結點,最后一個節點與別的節點的區別就是它的next是NULL,
③把新建的結點加入到最后一個節點當中,具體操作就是把當前最后一個結點的next指向新建的結點就OK了,=^?ω?^=
void AddLetter_Tail(LinkList header, char letter_) { LinkList p,q = NULL; // Creaat New node q = (LinkList)malloc(sizeof(LNode)); q->letter = letter_; q->next = NULL; //Search tail p = header; while(p->next != NULL) { p = p->next; } // add node p->next = q; }
2、頭插法,在頭結點后面插入新元素,我們不能把頭結點抹去,也不能在頭結點前面插入,因為我們鏈表的第一個節點是頭結點,



步驟又自然而然的出來了:
①老規矩,先新建結點,
②找到頭部,也就是上一篇隨筆里第一次新建的結點,名字叫head,
③改變指標指向,新建結點的next指向首元結點(由原鏈表head的next得到),然后頭結點(也就是head)的next指向新建的結點,
注:第③步順序可以改變,可以頭結點先指向新建結點,新建結點next再指向首元結點,只不程序式上略有不同,需要保存好首元結點的地址也就是原鏈表head的next,要不然新建結點就找不到指向首元結點的入口了,
void AddLetter_Head(LinkList header,char letter_) { LinkList q,p = NULL; // Creaat New node q = (LinkList)malloc(sizeof(LNode)); q->letter = letter_; q->next = NULL; //add node p = header; q->next = p->next; p->next = q; }
這樣就算把頭插法和尾插法弄明白了,當添加完元素之后可以先遍歷鏈表看看,
void PrintList(LinkList header) { LinkList p = header->next; while(p != NULL) { printf("%c ",p->letter); p = p->next; } printf("\n"); }
Main函式代碼如下:
int main() { printf("This is Struct_Data:\n\n"); LinkList head = Init_linklist(); AddLetter_Tail(head,'H'); AddLetter_Tail(head,'i'); AddLetter_Tail(head,','); AddLetter_Tail(head,'L'); AddLetter_Tail(head,'i'); AddLetter_Tail(head,'n'); AddLetter_Tail(head,'u'); AddLetter_Tail(head,'x'); AddLetter_Tail(head,'.'); PrintList(head); AddLetter_Head(head,'/'); AddLetter_Head(head,'U'); AddLetter_Head(head,'b'); AddLetter_Head(head,'u'); AddLetter_Head(head,'n'); AddLetter_Head(head,'t'); AddLetter_Head(head,'u'); AddLetter_Head(head,'.'); PrintList(head); return 0; }
效果如圖:

下一篇將談一談中間插入元素,和洗掉操作,
總結: ①在學習新東西的時候一定要想清楚自己在干什么,要有主見的去學習新事物,
②可以畫圖,寫寫字兒,理清自己的思路,
③程式不是只能這么寫,只要符合邏輯怎么寫都行,當時就是太死板,總想著去記住程式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/556831.html
標籤:其他
上一篇:python筆記:第四章使用字典
下一篇:返回列表
