以上是定義結構體。
以下是雙向迴圈鍊錶的實現
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...