68 雙向迴圈鍊錶的實現

2021-10-11 10:29:22 字數 1452 閱讀 5488

以上是定義結構體。

以下是雙向迴圈鍊錶的實現

void

ringlinkinit

(ringlink *head)

//初始化

static ringlink *

(elemtype val, ringlink *prev, ringlink *next)

//申請新的結點

bool ringlinkinsert

(ringlink *head, elemtype val,

int pos)

//按位置插入

ringlink *newnode =

(val, p, p->next);if

(newnode ==

null

)return false;

p->next->prev = newnode;

// 不需要在判斷p->next是否為空

p->next = newnode;

return true;

}bool ringlinkinserthead

(ringlink *head, elemtype val)

//頭插

// 尾插就是在head的前面插入乙個節點

bool ringlinkinserttail

(ringlink *head, elemtype val)

bool ringdeletepos

(ringlink *head,

int pos)

//按位置刪除

if(p->next == head)

return false;

ringlink *q = p->next;

p->next = q->next;

q->next->prev = p;

free

(q);

return true;

}bool ringdeletehead

(ringlink *head)

//頭刪

bool ringdeletetail

(ringlink *head)

//尾刪除

p->prev->next = head;

p->next->prev=p->prev;

return true;

}void

ringdestroy

(ringlink *head)

//銷毀

}

線性表4 雙向迴圈鍊錶

測試上一次介紹了單向迴圈鍊錶,這一次介紹雙向迴圈鍊錶。顧名思義,雙向迴圈鍊錶的結點中有兩個指標域,乙個指向直接後繼,乙個指向直接前驅。描述 資料域 兩個指標域 typedef int datatype typedef struct node dlinklist,dlinklist t 用malloc...

1 5 雙向鍊錶

實現 public class doublelinkedlistdemo 鍊錶操作類 class doublelinkedlist 新增節點 同單向,但有點區別,加上前乙個指標 public void add heronode2 heronode2 temp.next heronode2 heron...

20 雙向鍊錶

1 define crt secure no warnings 23 include4 include5 include67 define ok 1 8 define error 0 9 define true 1 10 define false 0 1112 typedef int elemtyp...