單鏈表補充

2021-09-08 13:05:40 字數 751 閱讀 3876

頭插法以及尾插法建立鍊錶;

頭插 法:

lnode *create_linklist()

p = (lnode*)malloc(sizeof(lnode));

p->data=data; //資料域賦值

p->next=head->next;

head->p; //新建立的節點總是作為第乙個節點

}return (head);

}

尾插法:

lnode *creat_linklist()

q = (lnode*)malloc(sizeof(lnode));

q->data = data;

q->next = p->next;

p->next = q;

p = q;

} return head;

}

對比這兩種插入方法,尾插法多了乙個p=q;

頭插法沒有是因為是在頭部插入的,每次插入的值都成為了頭結點,不需要移動head,而尾插法頭結點的值是固定的,是從頭向後插,需要移動頭結點,所以最後遍歷輸出頭插法的時候是逆序的。

迴圈鍊錶:

頭尾相接的鍊錶,最後乙個節點的指標域指向鍊錶的頭結點。從迴圈鍊錶的任意乙個節點出發都可以找到鍊錶中的其他節點。

改變的地方:

(1):判空:head->next==head?

(2):是否是表尾節點:p->next==head?

單鏈表(合併單鏈表)

單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...

單鏈表之排序單鏈表

package list public class sortedsinglylist extends singlylist 將values陣列中的所有物件按值大小插入 public sortedsinglylist t values 過載深拷貝,由單鏈表構建排序單鏈表 public sortedsi...

單鏈表 雙鏈表

實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...