資料結構 雙向迴圈鍊錶 2016 11 14

2021-07-24 14:42:14 字數 1263 閱讀 6839

雙向迴圈鍊錶源**(c語言版)

/*********實現了,插入,刪除,順逆序列印*********/

#include#include//定義節點結構體

typedef struct dulnodedulnode,*dulinklist;

//初始化迴圈雙向鍊錶;

void initdulnode(dulinklist l)

//建造雙向迴圈鍊錶

void builddulnode(dulinklist l,int c)

s->next=p->next;

p->next=s;

l->prior=s; //此處要引用頭指標l,必須連線在最後節點s上面,才可實現迴圈,不然逆序列印會出問題。

s->prior=p;

s->data=i;

i++; }}

//確定插入位置,符合則返回指標

dulinklist getdulink(dulinklist l,int i)

if(!p || i>j)

return p;

}//插入節點

void insertdulnode(dulinklist l,int i,int e)

if(!(s=(dulinklist)malloc(sizeof(dulnode))))

s->prior=p->prior; //給指標賦值的時候注意指向,我就把s->prior=p->prior寫成p->prior=s->prior,整了好半天。

p->prior->next=s;

s->next=p;

p->prior=s;

s->data=e;

}//刪除節點

void deletedulnode(dulinklist l,int i)

//順序列印雙向迴圈鍊錶

void yprintdulnode(dulinklist l)

printf("\n");

}//逆序列印雙向迴圈鍊錶

void nprintdulnode(dulinklist l)

printf("\n");

}//主函式

int main() }

return 0;

}

————程式執行截圖————

資料結構 雙向迴圈鍊錶

近期我在學習資料結構,於是我自己整理了單鏈表 迴圈單鏈表 雙向鍊錶 雙向迴圈鍊錶的相關 以鞏固這段時間的學習,也希望能夠幫助初學者,希望大家在閱讀以下 時發現問題糾正於我,一起 cycdoublelist.h ifndef cycdoublelish h define cycdoublelish h...

資料結構 雙向迴圈鍊錶

typedef struct node node,pnode pnode init dc list void 雙向迴圈鍊錶的初始化 pnode new node int dat 新建乙個節點 把位址為pnew的節點插入到雙向迴圈鍊錶的尾部 頭節點的前面 bool list add tail pnod...

資料結構 雙向鍊錶,迴圈鍊錶

也許是自己太小看資料結構,練習了幾天還在第二章徘徊,可自己覺得基礎還是要打牢的好 總結一下 第乙個是雙向鍊錶,include include typedef struct node node,linklist void creat linklist l else int insert linklis...