C實現頭插法和尾插法來構建單鏈表(不帶頭結點)

2021-09-07 13:03:59 字數 1709 閱讀 2113

鍊錶的構建事實上也就是不斷插入節點的過程。而節點的插入能夠分為頭插法和尾插法。

頭插法就是在頭結點後插入該節點,始終把該節點作為第乙個節點。尾插法就是在鍊錶的最後乙個節點處插入元素,作為最後乙個節點。假設想要了解鍊錶的概念和其它鍊錶操作。請參考《資料結構與演算法之鍊錶》《c語言實現鍊錶的基本操作》兩篇文章。演示樣例**上傳至   。

//

// main.c

// headinsertandtailinsert

//// created by chenyufeng on 16/2/25.

///**

* 分別使用頭插法和尾插法建立單鏈表

*/#include #include "stdlib.h"

#include "string.h"

typedef int elemtype;

//構造節點

typedef struct listnodenode;

//初始化鍊錶

void initlist(node *pnode)

//列印鍊錶

void printlist(node *pnode)else

printf("\n");

}}//頭插法

node *headinsert(node *pnode)

memset(pinsert, 0, sizeof(node));

scanf("%d",&(pinsert->element));

pinsert->next = null;

if (pinsert->element <= 0)

while (pinsert->element > 0) else

pinsert = (node*)malloc(sizeof(node));

if (pinsert == null)

memset(pinsert, 0, sizeof(node));

scanf("%d",&(pinsert->element));

pinsert->next = null;

}printf("%s函式執行。頭插法建立鍊錶成功\n",__function__);

return pnode;

}//尾插法

node *tailinsert(node *pnode)

memset(pinsert, 0, sizeof(node));

scanf("%d",&(pinsert->element));

pinsert->next = null;

if (pinsert->element <= 0)

pmove = pnode;

while (pinsert->element > 0) else

pmove->next = pinsert;

}pinsert = (node*)malloc(sizeof(node));

if (pinsert == null)

memset(pinsert, 0, sizeof(node));

scanf("%d",&(pinsert->element));

pinsert->next = null;

}printf("%s函式執行,尾插法建立鍊錶成功\n",__function__);

return pnode;

}int main(int argc, const char * ar**)

頭插法和尾插法

頭插法 初始化頭節點 lk init headnode 資料域可以不用維護 headnode next null return headnode 頭插法 void insert linklist lk headnode,int length int val 0 int index 0 for int...

頭插法和尾插法建立單鏈表

頭插法和尾插法建立單鏈表 include using namespace std typedef int elemtype typedef struct lnode linklist 頭插法建表 從尾部乙個乙個往前插入 void createlisthead linklist l,elemtype ...

頭插法和尾插法建立單鏈表

頭插法建立單鏈表 include include typedef struct lnodenode,linklist linklist headinsert linklist 頭插法建立單鏈表 void output linklist 遍歷輸出 int main void 頭插法建立單鏈表 link...