迴圈雙鏈表的簡單實現

來源:互聯網
上載者:User

標籤:鏈表   c++   雙鏈表   

<span style="font-size:18px;"><strong>//代碼為自己編寫,可能有問題,歡迎大家留言指正!</strong></span>
<span style="font-size:18px;"><strong></strong></span>
#include <iostream>#include <string>using namespace std;typedef struct dnode{int val;dnode *prior;dnode *next;}dnode;dnode * create();void traverse(dnode *pHead);bool insert(dnode *pHead,int pos,int val);bool del(dnode *pHead,int pos,int &val);void inverse(dnode *pHead);void main(){dnode *pHead = create();traverse(pHead);insert(pHead,3,5);traverse(pHead);int val;del(pHead,4,val);cout<<val<<endl;traverse(pHead);inverse(pHead);//traverse(pHead);}//建立迴圈雙鏈表dnode *create(){dnode *pHead = new dnode,*pTail;pTail = pHead;pTail->next = pHead;//pHead->prior = pTail;for (int i =0;i<4;i++){dnode *pNew = new dnode;pNew->val = i+1;pNew->next = pTail->next;pTail->next = pNew;pNew->prior = pTail;pTail = pNew;}pHead->prior = pTail;return pHead;}void traverse(dnode *pHead){dnode *p =pHead->next;while (p != pHead){cout<<p->val<<" ";p = p->next; }cout<<endl;}bool insert(dnode *pHead,int pos,int val){dnode *p = pHead,*q;int i = 1;while (p->next != pHead && i < pos) //找到pos-1個節點(不包括頭結點){++i;p = p->next;}if (i > pos || p->next == pHead){return false;}dnode *pNew = new dnode;q = p->next; pNew->val = val;p->next = pNew;pNew->prior = p;pNew->next = q;q->prior = pNew;return true;}bool del(dnode *pHead,int pos,int &val){dnode *p = pHead,*q;int i = 1;while (p->next != pHead && i < pos) //找到pos-1個節點(不包括頭結點){++i;p = p->next;}if (i > pos || p->next == pHead){return false;}    q = p->next; //q為要刪除的節點 val = q->val; p->next = q->next; q->next->prior = p; delete q;return true;}//逆序輸出void inverse(dnode *pHead){dnode *p = pHead->prior; //p指向最後一個節點while (p != pHead){cout<<p->val<<" ";p = p->prior;}cout<<endl;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.