#ifndef _list__h_
#define _list__h_
#include "stdio.h"
#include "assert.h"
#include "malloc.h"
#include "string.h"
typedef int datatype;
typedef struct listnode
list, *plist;
void listinit(plist* lt);
void listdestory(plist* lt);
plist buylistnode(datatype x);
void listpushback(plist* lt, datatype x);
void listpushfront(plist* lt, datatype x);
void listpopback(plist* lt);
void listpopfront(plist* lt);
plist listfind(plist lt, datatype x);
void listinsert(plist* pos, datatype x);
void listerase(plist* pos);
int listsize(plist lt);
int listempty(plist lt);
void listprint(plist lt);
#endif
#include "list.h"
//初始化雙向鍊錶
void listinit(plist* lt)
//清除雙向鍊錶
void listdestory(plist* lt)
*lt = null;
}//建立新結點
plist buylistnode(datatype x)
//尾插
void listpushback(plist* lt, datatype x)
//頭插
void listpushfront(plist* lt, datatype x)
//尾刪
void listpopback(plist* pos)
//頭刪
void listpopfront(plist* pos)
//找出指定元素
plist listfind(plist lt, datatype x)
return null;
}//插入指定元素
void listinsert(plist* pos, datatype x)
//刪除
void listerase(plist* pos)
//雙向鍊錶長
int listsize(plist lt)
return count;
}//判斷雙向鍊錶是否為空
int listempty(plist lt)
//列印雙向鍊錶
void listprint(plist lt)
printf("%d\n",list->_data);
}
帶頭雙向迴圈鍊錶
首先,我們來看一下帶頭雙向迴圈鍊錶的結構 目錄 帶頭雙向迴圈鍊錶結點的定義 相關操作介面 1 初始化 獲取乙個結點 2 銷毀鍊錶 3 尾插 4 頭插 5 指定元素查詢 6 任意位置插入 7 尾刪 8 頭刪 9 任意位置刪除 10 列印鍊錶 附上完整 typedef int datatype type...
帶頭雙向迴圈鍊錶
帶頭雙向迴圈鍊錶的增刪查改實現 帶頭 雙向 迴圈鍊錶增刪查改實現 typedef int ltdatatype typedef struct listnode listnode 建立乙個新節點 listnode buylistnode ltdatatype x 建立返回鍊錶的頭節點 listnode...
雙向帶頭鍊錶的實現
pragma once typedef int dldatatype typedef struct dlistnode dlistnode,dnode void dlistinit dnode head 尾插 void dlistnodepushback dnode head,dldatatype ...