日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理论基础 —— 线性表 —— 双向链表

發布時間:2025/3/17 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理论基础 —— 线性表 —— 双向链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【實現類】

template <class T> struct Node{//結點T data;//數據域Node *llink;//左指針Node *rlink;//右指針 };template <class T> class doubleList{ private:Node<T> *first;//頭指針 public:doubleList();//無參構造函數doubleList();//有參構造函數~doubleList();//析構函數void insertElement(T x);//在雙鏈表中插入值為x的元素T deleteElement(T x);//刪除雙鏈表中值為x的元素void Sort(int len);//冒泡排序void print();//按序號依次輸出雙鏈表各元素 };

【構造函數】

1.無參構造函數

對于無參構造函數,只需建一個頭結點,令其左右指針分別為空即可

template <class T> linkList<T>::doubleLink(){//無參構造函數first=new Node<T>;//頭指針指向頭結點first->llink=NULL;//左指針為空first->rlink=NULL;//右指針為空 }

2.有參構造函數

1)頭插法

template <class T> linkList<T>::doubleLink(T a[],int n){first=new Node;//頭指針指向頭結點first->llink=NULL;//左指針為空first->rlink=NULL;//右指針為空Node *s;//新結點for(int i=1;i<=n;i++){s=new Node;s->data=a[i];//數據域s->rlink=first->rlink;first->rlink=s;s->llink=first;if(s->rlink!=NULL)//下個結點不為空s->rlink->llink=s;//下一個節點指向自己} }

2)尾插法?

template <class T> linkList<T>::doubleLink(T a[],int n){first=new Node<T>;//頭指針指向頭結點Node *r=first;//尾指針first->llink=NULL;//左指針為空first->rlink=NULL;//右指針為空Node<T> *s;//新結點for(int i=0;i<n;i++){s=new Node<T>;s->data=a[i];//數據域r->rlink=s;s->llink=r;r=s;}r->rlink=NULL; }

【析構函數】

對于析構函數,與單鏈表的析構函數相同,僅需使用右指針 rlink 不斷指向下一結點,釋放存儲空間即可

template <class T> doubleLink<T>::~doubleLink(){Node<T> *p,*q;//工作指針p=first;//從頭開始while(p!=NULL){q=p->rlink;//指向下一結點delete p;//釋放當前結點空間p=q;//令當前節點指向下一結點} }

【插入】

在雙向鏈表中插入一個結點,對指針的操作順序有很多,但由于雙向鏈表實質上可看作兩條反向的單鏈表,所以插入操作的核心是:先處理每個方向的遠端指針,再處理近端指針

原則上,插入一個結點需要連接 4 個指針,但考慮插入時的特殊情況,即在空表或表尾插入一個結點時,新結點的右指針指向為空,此時只需連接 3 個指針

void doubleList<T>:: insertElement(T x){//在雙表中插入值為x的元素Node<T> *s=new Node<T>;//新結點s->data=x;//新結點數據域賦值為xs->rlink=p->rlink;//新結點s的右指針指向工作結點p之后的結點s->llink=p;//新結點s的左指針指向工作結點pp->rlink=s;//工作結點p的右指針指向新結點sif(s->rlink!=NULL)//不為表尾或空時s->rlink->llink=s;//新結點s的右指針的左指針指向新結點s }

【刪除】

對于刪除操作,其與插入操作相似,在刪除時需要判斷是否為表尾結點

bool doubleList<T>::deleteElement(T x){//刪除雙鏈表中值為x的元素Node<T> *p;//工作指針p=first->rlink;while(p!=NULL){if(p->data==x){if(p->rlink==NULL)//p為表尾元素p->llink->rlink=NULL;else{//p不為表尾元素p->llink->rlink=p->rlink;p->rlink->llink=p->llink;}delete p;//釋放空間return true;//刪除成功}p=p->rlink;}return false;//刪除失敗 }

【冒泡排序】

int doubleList<T>::void Sort(int len){//冒泡排序Node<T> *p;//工作指針for(int i=0;i<len-1;i++){//len-1輪p=first->rlink;for(int j=0;j<len-i-1;j++){//len-i次T tempA=p->data;//當前數據T tempB=p->rlink->data;//下一結點數據if(tempA>tempB){//比較T temp=p->data;p->data=p->rlink->data;p->rlink->data=temp;}p=p->rlink;//指向下一結點}} }

【輸出】

雙鏈表的遍歷輸出,與單鏈表相同,僅需使用右指針 rlink 不斷指向下一結點,輸出數據域即可

template <class T> void doubleLink<T>::print(){Node<T> *p;//工作指針p=first->rlink;//從第一個結點開始while(p!=NULL){cout<<(p->data)<<endl;//輸出數據域p=p->rlink;//指向下一結點} }

?

總結

以上是生活随笔為你收集整理的理论基础 —— 线性表 —— 双向链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 偷偷操99| 一区二区三区三区在线 | 播色屋 | 五月天丁香久久 | 亚洲一卡二卡在线观看 | 欧美精品 日韩 | 亚洲一级片免费看 | 国产二区三区视频 | 青青草原成人 | 尤物网址在线观看 | 国产精品搬运 | 淫欲av | 国产网站精品 | 国产av无码专区亚洲av毛片搜 | 中文字幕1页 | 图片区小说区视频区 | 黄色av电影在线 | 劲爆欧美第一页 | 日韩极品视频 | 日韩欧美黄色大片 | 五月天久久| 国产精品19乱码一区二区三区 | 极品少妇xxxx | 成人激情综合网 | 两口子交换真实刺激高潮 | 婷婷五月综合缴情在线视频 | 欧美人和黑人牲交网站上线 | 国产美女久久久久 | 你懂的在线视频网站 | 国产免费a级片 | 国产裸体网站 | 色网在线观看 | 蜜桃99视频一区二区三区 | 中国黄色三级 | 九九超碰| 国产一区日韩 | 中文字幕在线成人 | 重囗另类bbwseⅹhd | 国产精品无码久久久久久 | 成人免费视频一区 | 人妻互换 综合 | 法国空姐电影在线 | 新天堂网| 绿色地狱在线观看 | 免费一区二区在线观看 | 在线免费观看国产 | 毛片1000部免费看 | 色91精品久久久久久久久 | 青青免费视频 | 啪啪短视频 | 精品无码三级在线观看视频 | 欧美日韩国产亚洲一区 | 国产精品免费av | 日韩性xxxx | 日韩h在线 | 99久久婷婷国产综合精品电影 | 免费一级黄色大片 | 久操国产在线 | 综合国产精品 | 国产微拍精品一区 | 久久特黄视频 | 国产第十页 | 国产主播福利在线 | 黄色在线观看网址 | 福利一区二区在线观看 | avtt国产| 国产在线操 | 中文字幕av免费在线观看 | 国产人成无码视频在线观看 | 国产女主播av | 靠逼在线观看 | 奇米影视久久久 | 免费网站在线观看人数在哪动漫 | 国外成人在线视频 | 中国少妇av| 射在线| 男女激情啪啪 | 黄久久久| 亚洲熟妇无码av在线播放 | 色福利hd写真video | 懂色av蜜臀av粉嫩av分享吧最新章节 | h欧美| 中文字幕免费一区二区 | 色片免费观看 | 亚洲综合p | 四虎视频 | 国产五月 | 免费看片亚洲 | 亚洲AV无码一区二区三区性 | 中文字幕亚洲色图 | 性插动态视频 | 一区二区三区精品国产 | 国产精品电影在线观看 | 黄色片在线观看视频 | 秋霞7777鲁丝伊人久久影院 | 免费激情片 | av成人在线电影 | 强伦人妻一区二区三区视频18 | av天天看|