帶頭雙向鍊錶

2021-08-29 07:43:56 字數 1609 閱讀 4772

#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 ...