亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

關于雙向鏈表的增刪改查和排序的C++實現

2020-05-23 13:57:45
字體:
來源:轉載
供稿:網友

雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數據結點中都有兩個指針,分別指向直接后繼和直接前驅。所以,從雙向鏈表中的任意一個結點開始,都可以很方便地訪問它的前驅結點和后繼結點。一般我們都構造雙向循環鏈表。

由于雙向鏈表可以方便地實現正序和逆序兩個方向的插入、查找等功能,在很多算法中經常被使用,

這里用C++構造了一個雙向鏈表,提供了對雙向鏈表的插入、查找、刪除節點、排序等功能,其中排序提供了插入排序和冒泡排序兩種方式

#include<iostream>using namespace std;class Node     //組成雙向鏈表的節點{public:  int data;  Node * pNext;  Node * pLast;};class List   //構造一個雙向鏈表{private:  Node * pHead;  Node * pTail;  int length;public:  List(int length)    //創建雙向鏈表  {    this->length=length;    pHead=new Node();    pHead->pLast=NULL;    pTail=pHead;    for(int i=0;i<length;i++)    {      Node * temp=new Node();      cout<<"please enter the no"<<i+1<<" Node's data:";      cin>>temp->data;      temp->pNext=NULL;      temp->pLast=pTail;      pTail->pNext=temp;      pTail=temp;    }  }    void traverseList()    //正向遍歷  {    Node * p=pHead->pNext;    while(p!=NULL)    {      cout<<p->data<<endl;      p=p->pNext;    }  }    void traverseListReturn()    //逆向遍歷  {    Node * p=pTail;    while(p->pLast!=NULL)    {      cout<<p->data<<endl;      p=p->pLast;    }  }    void sortList()   //冒泡排序  {    Node * p=new Node();    Node * q=new Node();    int temp;    for(p=pHead->pNext;p->pNext!=NULL;p=p->pNext)    {      for(q=p->pNext;q!=NULL;q=q->pNext)      {        if(q->data<p->data)        {          temp=q->data;          q->data=p->data;          p->data=temp;        }      }    }  }    void sortListByInsertWay()    //插入排序  {    if(pHead->pNext==NULL||pHead->pNext->pNext==NULL)    {      return;    }    Node * p2=pHead->pNext->pNext;    Node * p1=pHead;    pHead->pNext->pNext=NULL;    while(p2)    {      Node * pN=p2->pNext;      while(p1->pNext)      {        if(p2->data<p1->pNext->data)        {          p2->pNext=p1->pNext;          p2->pLast=p1;          p1->pNext->pLast=p2;          p1->pNext=p2;          break;        }        p1=p1->pNext;      }      if(p1->pNext==NULL)      {        p2->pNext=NULL;        p2->pLast=p1;        p1->pNext=p2;      }      p2=pN;    }        //重新查找pTail的位置    Node * pt=pHead;    while(pt->pNext)    {      pt=pt->pNext;    }    pTail=pt;  }    void changeList(int num,int position)    //修改鏈表中指定位置的節點  {    Node * p=pHead->pNext;    if(position>length||position<=0)    {      cout<<"over stack !"<<endl;      return;    }    for(int i=0;i<position-1;i++)    {      p=p->pNext;    }    p->data=num;  }    void insertList(int num,int position)    //插入數據  {    Node * p=pHead->pNext;    if(position>length||position<=0)    {      cout<<"over stack !"<<endl;      return;    }    for(int i=0;i<position-1;i++)    {      p=p->pNext;    }    Node * temp=new Node();    temp->data=num;    temp->pNext=p;    temp->pLast=p->pLast;    p->pLast->pNext=temp;    p->pLast=temp;    length++;  }    void clearList()      //清空  {    Node * q;    Node * p=pHead->pNext;    while(p!=NULL)    {      q=p;      p=p->pNext;      delete q;    }    p=NULL;    q=NULL;  }    void deleteList(int position)   //刪除指定位置的節點  {    Node * p=pHead->pNext;    if(position>length||position<=0)    {      cout<<"over stack !"<<endl;      return;    }    for(int i=0;i<position-1;i++)    {      p=p->pNext;    }    p->pLast->pNext=p->pNext;    p->pNext->pLast=p->pLast;    delete p;    length--;  }    int getItemInList(int position)      //查找指定位置的節點  {    Node * p=pHead->pNext;    if(position>length||position<=0)    {      cout<<"over stack !"<<endl;      return 0;    }    for(int i=0;i<position-1;i++)    {      p=p->pNext;    }    return p->data;  }    ~List()  {    Node * q;    Node * p=pHead->pNext;    while(p!=NULL)    {      q=p;      p=p->pNext;      delete q;    }    p=NULL;    q=NULL;  }  };int main(){  List l(3);  l.traverseList();  cout<<"AFTER SORT------------------------------------------------------"<<endl;//  l.sortList();       //冒泡排序  l.sortListByInsertWay();  //插入排序  l.traverseList();  cout<<"AFTER INSERT-----------------------------------------------------"<<endl;  l.insertList(55,1);  l.traverseList();  cout<<"AFTER DELETE-----------------------------------------------------"<<endl;  l.deleteList(1);  l.traverseList();  cout<<"Return Traverse---------------------------------------------"<<endl;  l.traverseListReturn();  cout<<"Find the Second Node's data:"<<l.getItemInList(2)<<endl;  return 0;}

以上這篇關于雙向鏈表的增刪改查和排序的C++實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产ts人妖一区二区三区| 国产福利成人在线| 欧美在线国产精品| 91国产美女视频| 日韩国产高清视频在线| 国产精品久久久久久久久| 日韩av大片免费看| 亚洲精品一区在线观看香蕉| 中日韩午夜理伦电影免费| 欧美另类69精品久久久久9999| 欧美午夜电影在线| 亚洲天堂av电影| 97久久精品人人澡人人爽缅北| 国产69精品99久久久久久宅男| 亚洲曰本av电影| 中文字幕免费国产精品| 国产美女精品视频| 亚洲国内精品在线| 久久久精品一区二区三区| 国产成人一区二区在线| 91精品久久久久久久久不口人| 91日本在线观看| 青草青草久热精品视频在线观看| 欧美日韩成人在线播放| 国产91露脸中文字幕在线| 亚洲奶大毛多的老太婆| 一级做a爰片久久毛片美女图片| 日韩av三级在线观看| 欧美电影电视剧在线观看| 中文日韩在线视频| 97在线视频免费| 亚洲第一福利网站| 亚洲a区在线视频| 精品国产一区av| 亚洲最大的av网站| 日韩av高清不卡| 欧美激情xxxx| 国产精品日韩电影| 最新国产成人av网站网址麻豆| 国产精品久久久久7777婷婷| 欧美性xxxx极品高清hd直播| 91免费福利视频| 91精品国产综合久久久久久久久| 欧美视频免费在线观看| 日本一欧美一欧美一亚洲视频| 亚洲国产精品热久久| 亚洲自拍偷拍网址| 亚洲欧美综合另类中字| 伊是香蕉大人久久| 中文字幕免费精品一区高清| 欧美激情奇米色| 亚洲第一网中文字幕| 国产日产亚洲精品| 性夜试看影院91社区| 亚洲综合在线做性| 亚洲偷熟乱区亚洲香蕉av| 国产一区二区视频在线观看| 综合激情国产一区| 国产精品扒开腿做爽爽爽的视频| 国产日韩在线看片| 啊v视频在线一区二区三区| 精品中文字幕在线2019| 国产精品亚洲аv天堂网| 亚洲热线99精品视频| 中文字幕亚洲二区| 亚洲成人黄色网| 欧美一级片在线播放| 91免费欧美精品| 久久色在线播放| 国产亚洲精品久久久优势| 操人视频在线观看欧美| 久久久女人电视剧免费播放下载| 国产精品久久久久91| 亚洲欧美国产另类| 日韩在线观看你懂的| 国产91九色视频| 亚洲专区国产精品| 91在线高清视频| 国产精品久久久久久久久久久久久久| 日本久久久久久| 日韩免费在线免费观看| 国产日韩欧美中文| 亚洲人成网站777色婷婷| 国产精品亚洲视频在线观看| 久久久亚洲福利精品午夜| 亚洲区在线播放| 久久久精品一区二区三区| 国产做受高潮69| 国产不卡一区二区在线播放| 国产一区二区av| 日韩欧美有码在线| 91午夜理伦私人影院| 欧美另类极品videosbest最新版本| 欧美日韩一区二区在线| 国产一区二区三区高清在线观看| 欧美在线观看网址综合| 亚洲第一区中文99精品| 久久国内精品一国内精品| 亚洲欧洲一区二区三区在线观看| 欧美性高潮床叫视频| 中文字幕在线成人| 成人av.网址在线网站| 国产精国产精品| 国产成人精品av在线| 98精品国产高清在线xxxx天堂| 热99在线视频| 一个人看的www久久| 欧美日韩国产在线看| 亚洲欧美激情四射在线日| 亚洲国产美女精品久久久久∴| 国产日韩在线亚洲字幕中文| 国产亚洲一区二区精品| 精品国产网站地址| 亚洲天堂av在线免费| 成人欧美一区二区三区在线湿哒哒| 午夜精品久久久久久久99热| 亚洲网站在线看| 久久精品国产久精国产一老狼| 亚洲福利视频网| 亚洲bt欧美bt日本bt| 久久影院模特热| 久久男人的天堂| 精品亚洲夜色av98在线观看| 亚洲伊人成综合成人网| 中文字幕亚洲一区在线观看| 欧美日韩另类视频| 久精品免费视频| 亚洲国产成人久久| 国产女人18毛片水18精品| 国产成人一区二区三区电影| 国产精品久久久久久av| 国产精品一区二区av影院萌芽| 国产精品91一区| 色狠狠av一区二区三区香蕉蜜桃| 992tv在线成人免费观看| 欧美富婆性猛交| 国产99久久久欧美黑人| 欧美另类69精品久久久久9999| 欧美激情xxxx性bbbb| 亚洲专区中文字幕| 97色在线视频| 精品国产鲁一鲁一区二区张丽| 日韩欧美成人免费视频| 欧美激情亚洲另类| 欧美黑人国产人伦爽爽爽| 91久久久亚洲精品| 欧美激情欧美激情在线五月| 久久精品这里热有精品| 国产91久久婷婷一区二区| 国产91ⅴ在线精品免费观看| 欧美日韩中文字幕日韩欧美| 亚洲欧洲高清在线| 日韩欧美国产一区二区| 欧美日韩亚洲一区二区| 色婷婷av一区二区三区在线观看| 亚洲激情成人网| 欧美电影院免费观看| 在线日韩精品视频| 这里只有精品视频在线| 欧美日韩成人在线视频| 97视频免费观看| 国产欧美日韩免费看aⅴ视频| 国产又爽又黄的激情精品视频| 国产精品av免费在线观看|