雙鏈表的基本操作

2021-08-18 03:15:20 字數 3443 閱讀 8492

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈鍊錶。

雙鏈表的基本操作有以下:

dlistnode* 

buydlistnode

(datatype x)

; //申請記憶體空間

dlistnode*

dlistinit

();

//初始化

void

dlistdestory

(dlistnode* head)

; //銷毀

void

dlistprint

(dlistnode* head)

;//列印

void

dlistpushback

(dlistnode* head, datatype x)

;//後插

void

dlistpushfront

(dlistnode* head, datatype x)

;//頭插

void

dlistpopback

(dlistnode* head)

;//後刪

void

dlistpopfront

(dlistnode* head)

;//前刪

dlistnode*

dlistfind

(dlistnode* head, datatype x)

;//尋找指定值

void

dlistinsert

(dlistnode* pos, datatype x)

;//插入

void

dlisterase

(dlistnode* pos)

;//刪除該數

申請記憶體空間

dlistnode* 

buydlistnode

(datatype x)

//申請記憶體空間

newnode->_data = x;

newnode->_next = newnode;

}

初始化雙鏈表

dlistnode* dlistinit(datatype x) 

//初始化

後插

void dlistpushback(dlistnode* head, datatype x)

//後插

cur

= cur->

_next;

cur

->

_next = newnode;

newnode

->

_prev = cur;

newnode

->

_next = head;

head

->

_prev = newnode;

}

頭插

void dlistpushfront(dlistnode* head, datatype x)

//頭插

head

->

_next

->

_prev = newnode;

newnode

->

_next

= head->

_next;

head

->

_next = newnode;

newnode

->

_prev = head;

}

後刪

void dlistpopback(dlistnode* head)

//後刪

}

前刪

void dlistpopfront(dlistnode* head)

//前刪

}

尋找指定值

dlistnode* dlistfind(datatype x)

//尋找指定值

else

}

插入

void dlistinsert(dlistnode* pos, datatype x)

//插入

刪除該數

void dlisterase(dlistnode* pos, datatype x)

//刪除該數

銷毀

void dlistdestory(dlistnode* head) 

//銷毀

free(head);

}

列印

void

dlistprint

(dlistnode* head)

//列印

雙鏈表基本操作

1.在頭接點插入指定的值 template void insertd dnode front,const t value 2.顯示所有接點數值 template void showd dnode front 3.刪除接點 template void deleted dnode lhs 4。刪除指定資...

雙鏈表基本操作

看歐立奇的 程式設計師面試寶典 的雙向鍊錶部分,發現其中建立雙向鍊錶和刪除鍊錶中得某一點的程式存在問題,現將已經除錯通過的程式貼在下面 include using namespace std define len sizeof dnode typedef struct doublenode dnod...

雙鏈表基本操作

include include using namespace std define null 0 define maxsize 50 struct strlnode void create struct strlnode p,int x 建立雙鏈表 表頭節點 void insertnode str...