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

2021-05-25 20:38:42 字數 1779 閱讀 5373

也許是自己太小看資料結構,練習了幾天還在第二章徘徊,可自己覺得基礎還是要打牢的好……

總結一下**…………

第乙個是雙向鍊錶,

#include

#include

typedef struct node

node,*linklist;

void creat(linklist l)

else}}

int insert(linklist l,int a, int b)

if(p==l)

s=(node*)malloc(sizeof(node));

if(s)

else

return 0;

}int del(linklist l,int c)

if(p==l)

else

return 1;

}void main()

printf("/n請輸入要插入的位置和元素:/n");

scanf("%d,%d",&a,&b);

insert(l,a,b);

p=l->next;

printf("/n顯示鍊錶:/n");

while(p!=l)

printf("/n請輸入要刪除的元素的位置:/n");

scanf("%d",&c);

del(l,c);

p=l->next;

printf("/n顯示鍊錶:/n");

while(p!=l)

} 接下來是迴圈鍊錶

#include

#include

typedef struct note

note,*linklist;

void create1(linklist la)

}linklist create2()

p=la;

while(p->next!=la)

return p;

}linklist merge1(linklist la,linklist lb)

linklist merge2(linklist la,linklist lb)

printf("/n建立迴圈鍊錶lb:/n");

lb=(note*)malloc(sizeof(note));

create1(lb);

printf("/n顯示鍊錶lb:/n");

p=lb->next;

while(p!=lb)

printf("/n合併鍊錶:/n");

lc=merge1(la,lb);

printf("/n顯示合併鍊錶lb:/n");

p=lc->next;

while(p!=lc)

}void x2()

printf("/n建立迴圈鍊錶lb:/n");

lb=(note*)malloc(sizeof(note));

lb=create2();

q=lb->next->next;

printf("/n顯示鍊錶lb:/n");

while(q!=lb->next)

printf("/n合併鍊錶為:/n");

lc=merge2(la,lb);

printf("/n顯示合併鍊錶lc:/n");

p=lc->next;

while(p!=lc)

}void main()

}由於自己想學好程式設計,所以下的功夫也算…………都是自己編寫的**,雖然實現思想上基本一致,可自己怎麼說是自己寫的。親自除錯的,並且還做了教程——(這只是自己學習的方法——借鑑一位牛人的方法)

資料結構 雙向迴圈鍊錶

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

資料結構 鍊錶 雙向鍊錶

注意typedef的定義結構,以及dinklist的資料型別 typedef struct dnode dnode,dinklist 注意插入第乙個結點時,prior指標的空指向問題 if l next null 若l後繼結點為空 則省略該步驟 l next prior p 基本 頭插法建立雙向鍊錶...