国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

C語(yǔ)言中雙向鏈表和雙向循環(huán)鏈表詳解

2020-01-26 14:04:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

雙向鏈表和雙向循環(huán)鏈表

和單向鏈表相比,多了一個(gè)前驅(qū)結(jié)點(diǎn)。如果他為空,那么next和prior都指向自己。而對(duì)于雙循環(huán)鏈表,只需要最后一個(gè)元素的next指向head->next,head->next的prior指向最后一個(gè)節(jié)點(diǎn)即可。

插入操作

新節(jié)點(diǎn)s插入鏈表,s->next給p結(jié)點(diǎn),s->prior給p->prior,然后,p->prior->next指向s,p->prior再指向s。順序需要注意

s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s;

刪除操作

刪除結(jié)點(diǎn)p。p->next->prior 指向 p->prior,p->prior->next 指向 p->next 。最后將p結(jié)點(diǎn)delete。

p->prior->next = p->next;p->next->prior = p->prior;delete p;

實(shí)例操作

(附截圖)

注意:因?yàn)楹瘮?shù)沒(méi)有返回Node*類型,所以這里對(duì)指針進(jìn)行引用,否則在退出函數(shù)的時(shí)候,并沒(méi)有保存改變。如果需要?jiǎng)h除全部鏈表,需要保存InitList之后的head地址,否則會(huì)遺漏一個(gè)Node結(jié)點(diǎn)沒(méi)有刪除。

代碼實(shí)現(xiàn):

#include<iostream>#include<cstddef>#include<cstdio>using namespace std;const int OK = 1;const int ERROR = 0;const int LETTERNUM = 26;typedef char ElemType;struct Node{  ElemType data;  Node * prior;//前驅(qū)結(jié)點(diǎn)  Node * next;//后驅(qū)結(jié)點(diǎn) };int InitList(Node *&L){  Node *p,*q;  int i;    L = new Node; //頭結(jié)點(diǎn)   L->next = L->prior = NULL;  p = L; //p是當(dāng)前指針     for(int i=0;i<LETTERNUM;i++){    q = new Node; //q是臨時(shí)指針     q->data = 'A' + i;    q->prior = p;    q->next = p->next;    p->next = q;    p = q;//指針移動(dòng)   }  p->next = L->next; //尾結(jié)點(diǎn)指向head->next(第一個(gè)有字母的地址)   L->next->prior = p;    return OK;}void Change(Node *&L,int i){ //移動(dòng)頭指針   if (i>0){    while(i--){      L = L->next;    }  }  else if (i<0){    L = L->next ;     while(i++){      L = L->prior;    }  }  else{    L = L->next;  }}int main(){  Node *head = NULL;  int i,n;  InitList(head);  //Node *s_head = head; // 保存頭結(jié)點(diǎn)之后刪除   cout<<"輸入位置:"<<endl;  cin>>n;  Change(head,n);    for(i = 0;i<LETTERNUM;++i){    head = head->next;    cout<<head->data<<" ";   }    cout<<endl;  return 0;} 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 石狮市| 宁强县| 政和县| 庆云县| 吉木乃县| 东安县| 兴文县| 唐海县| 平谷区| 虞城县| 临沧市| 嘉义市| 乌什县| 巴楚县| 绥芬河市| 宣武区| 广宗县| 那曲县| 东宁县| 拉萨市| 佛教| 永兴县| 玉树县| 平阴县| 长顺县| 滕州市| 磐安县| 赫章县| 客服| 林甸县| 南宁市| 东安县| 太仆寺旗| 南京市| 平泉县| 凯里市| 中江县| 鹤岗市| 东方市| 冀州市| 千阳县|