C語言實現雙向非迴圈鍊錶(不帶頭結點)的節點插入

2021-07-10 04:43:50 字數 547 閱讀 4035

我在之前一篇部落格中《c語言實現雙向非迴圈鍊錶的逆序列印》講到了如何逆序輸出乙個雙向非迴圈鍊錶,讓我們對這種鍊錶型別有了理性的認識。今天我們要來實現的是對雙向非迴圈鍊錶進行節點的插入。大家可以和《c語言實現單鏈表節點的插入》單鏈表的節點插入對比著學習。**上傳至   。

核心**如下:

node *insertlist(node *pnode,int pos,int x)

//原煉表是乙個空鍊錶,在第乙個位置插入節點

if (pnode == null && pos == 0)

//單獨考慮插入到第乙個節點和最後乙個節點

if (pos == 0) else if(pos == size)

pmove->next = pinsert;

pinsert->prior = pmove;

}elseelse}}

printf("%s函式執行,在pos=%d位置插入x=%d節點成功\n",__function__,pos,x);

return pnode;

}

C語言實現雙向非迴圈鍊錶(不帶頭結點)的清空

我在之前一篇部落格 c語言實現單鏈表的基本操作 實現了如何清空乙個單鏈表,現在換成了雙向的非迴圈鍊錶,整體思路是一樣的。上傳至 核心 如下 node cleardoublelinkedlist node pnode else 清除最後乙個節點 free pnode pnode null printf...

C語言實現帶頭雙向迴圈鍊錶

標頭檔案 list.h pragma once include include include 帶頭雙向迴圈鍊錶增刪查改 typedef int ltdatatype typedef struct listnode listnode listnode listcreate 建立煉表頭結點 void ...

C語言實現帶頭雙向迴圈鍊錶的介面

各函式功能如下 申請空間 listnode buylistnode ltdatatype x 初始化listnode listinit 指定位置插入 void listinsert listnode pos,ltdatatype x 頭插void listpushfront listnode phe...