1.頭插法
void HeadCreatList(List *L) //頭插法建立鏈表 { List *s; //不用像尾插法一樣生成一個終端節點。 L->next = NULL; for (int i = 0; i < 10; i++) { s = (struct List*) malloc(sizeof(struct List));//s指向新申請的節點 s->data = i;//用新節點的數據域來接受i s->next = L->next; //將L指向的地址賦值給S;//頭插法與尾插法的不同之處主要在此, //s所指的新節點的指針域next指向L中的開始節點 L->next = s; //頭指針的指針域next指向s節點,使得s成為開始節點。 }
2.尾插法
void TailCreatList(List *L) //尾插法建立鏈表 { List *s, *r;//s用來指向新生成的節點。r始終指向L的終端節點。 r = L; //r指向了頭節點,此時的頭節點是終端節點。 for (int i = 0; i < 10; i++) { s = (struct List*) malloc(sizeof(struct List));//s指向新申請的節點 s->data = i; //用新節點的數據域來接受i r->next = s; //用r來接納新節點 r = s; //r指向終端節點 } r->next = NULL; //元素已經全部裝入鏈表L中 //L的終端節點指針域為NULL,L建立完成