目錄
鍊錶是一種動態的資料結構,因為在建立鍊錶時,不需要知道鍊錶的長度,只需要對指標進行操作。
鍊錶的節點包括兩部分,分別是:資料域和(指向下乙個節點的)指標域。
struct node ;
struct node* createlist()
struct node* createnode(int data)
節點的插入分為三種:頭插法、尾插法、在鍊錶中間插入節點。
頭插法,顧名思義就是在鍊錶的第乙個節點插入乙個節點。
解決方法:讓新插入的節點的next指標指向鍊錶的頭結點即可。
void insertnodebyhead(struct node* headnode, int data)
尾插法,顧名思義就是在鍊錶的末尾增加乙個節點。
解決思路:首先找到鍊錶的最後乙個節點;然後讓最後的節點的next指標指程式設計客棧向要插入的這個節點,插入的節點的next指標指向null即可。
void insertnodebytail(struct node* heawww.cppcns.comdnode, int data)
headnode->next = newnode;
newnode->next = null;
}插入中間節點:即在資料為 i 的節點後面新增新的節點。
解決思路:首先判斷資料為 i 的節點posnode是否在鍊錶中存在;然後從第乙個節點開始查詢節點posnode。找到後就讓插入的節點的next指標指向posnode的下乙個節點,posnode的next指標指向新插入的節點即可。
void insertnodebycenter(struct node* headnode, int data, int i)
else
} newnode->next =hgputjnxx posnode->next;
posnode->next = newnode;
}}
單向鍊錶簡單的介紹新增和刪除
說一下單向鍊錶 鍊錶實際上是線性表的鏈式儲存結構,與陣列不同的是,它是用一組任意的儲存單元來儲存線性表中的資料,儲存單元不一定是連續的,且鍊錶的長度不是固定的,鍊錶資料的這一特點使其可以非常的方便地實現節點的插入和刪除操作 不利於查詢。說一下陣列 陣列是一種連續儲存線性結構,元素型別相同,大小相等 ...
鍊錶的新增和刪除
單鏈表中,在c語言可以用結構體指標描述 cpp view plain copy typedef struct node node typedef struct node linklist 有一點很重要 比如我隨便畫乙個。千萬別也成 p next s s netx p next 正確的是 s netx...
鍊錶 刪除鍊錶的節點
劍指offer的乙個題,題目是要求在最少的時間內刪除鍊錶的節點。問題分析 對於鍊錶的刪除,按照劍指offer的一貫思路就是展開討論 1 空鍊錶咋辦 待刪除的節點是空節點咋辦 2 要刪除的節點在鍊錶中的位置有三種情況 1 鍊錶只有乙個節點,待刪除節點是表頭又是尾節點 2 鍊錶有多個節點,待刪除的節點是...