c語言 雙鏈表 學習記錄

2021-09-25 16:54:54 字數 2756 閱讀 7810

dblinklist.h

#ifndef dblinklist_h_included

#define dblinklist_h_included

#include #include #include typedef int datatype;

int length;

typedef struct node

dblinklist;

dblinklist *initdblinklist(dblinklist *l,int n); //初始化乙個雙鏈表

int insertdblinklist(dblinklist *l,int i,datatype x); //向鍊錶插入乙個數

int deletedblinklist(dblinklist *l,int i); //刪除乙個節點

int finddblinklist(dblinklist *l,datatype x); //查詢元素的位置

int updatedblinklist(dblinklist *l,int i,datatype x); //更新元素

void printdblinklist(dblinklist *l); //輸出全部元素

#endif // dblinklist_h_included

dblinklist.c

#include "dblinklist.h"

/**********************************

* 函式名:initdblinklist()

* 引數:dblinklist *l,int n

* 功能:初始化雙鏈表

* 返回值:dblinklist型

***********************************/

dblinklist *initdblinklist(dblinklist *l,int n)

r->next = null;

return l;

}/**********************************

* 函式名:insertdblinklist()

* 引數:dblinklist *l,int i,datatype x

* 功能:向鍊錶中插入乙個元素

* 返回值:int型

***********************************/

int insertdblinklist(dblinklist *l,int i,datatype x)

if (p == null)

else }

/**********************************

* 函式名:deletedblinklist()

* 引數:dblinklist *l,int i

* 功能:從鍊錶中刪除乙個元素

* 返回值:int型

***********************************/

int deletedblinklist(dblinklist *l,int i)

if (p == null || p->next == null)

else }

/**********************************

* 函式名:finddblinklist()

* 引數:dblinklist *l,datatype x

* 功能:在鍊錶中查詢乙個元素

* 返回值:int型

***********************************/

int finddblinklist(dblinklist *l,datatype x)

p = p->next;

count++;

} printf("在順序表中沒有找到值為%d的元素.\n", x);

return 0;

}/**********************************

* 函式名:updatedblinklist()

* 引數:dblinklist *l,int i,datatype x

* 功能:在鍊錶中修改乙個元素

* 返回值:int型

***********************************/

int updatedblinklist(dblinklist *l,int i,datatype x)

if(p->next==null)

else

}/**********************************

* 函式名:printdblinklist()

* 引數:dblinklist *l

* 功能:輸出鍊錶的全部元素

* 返回值:無

***********************************/

void printdblinklist(dblinklist *l)

printf("\n");

}

main.c

#include "dblinklist.h"

int main()

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

default:break;}}

return 0;

}

C語言 雙鏈表

還是 程式設計師面試寶典 上的 include include typedef struct student dnode 建立雙鏈表 dnode create else cycle 0 p next null p head head head next head pre null free p 釋放...

雙鏈表 C語言

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。簡單圖示 這次寫的雙鏈表的頭結點是不儲存資料的,所有資料都是存於頭結點的下乙個結點,即所有判斷都以頭結點的下乙個結點為準。資料簡介typedef struct dnode link 函式簡介link cre...

演算法學習記錄 雙鏈表

單鏈表缺點是每次都要從頭開始索引,不能往回索引,很自然就會想乙個辦法,希望能夠往回索引。這有雙鏈表就產生了。0.雙鏈表結構 typedef struct lnodeltnode,ptnode 增加了乙個前驅指標,這有就可以向回索引了。1.雙鏈表的初始化 1.雙向鍊錶的init void dlist ...