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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

“双向链表的一些基本操作”

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “双向链表的一些基本操作” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
void CreateLink()//頭插法建立雙向鏈表節點(逆序存儲) {node *L,*s;L=new node;L->prior=L->next=NULL;for(int i=0;i<n;i++){s=new node;s->num=a[i];s->next=L->next;//1先與下一個節點建立聯系if(L->next!=NULL)L->next->prior=s;//說明L下面還有節點,可以插入下面的那個節點前面L->next=s;//2上一個節點在與它建立聯系s->prior=L;}//最后L是個空節點 } void CreteList()//尾插法建立雙向鏈表(正序) {node *L,*s,r;L=new node;L->next=L->prior=NULL;r=L;for(int i=0;i<n;i++){s=new node;s->num=a[i];r->next=s;s->prior=r;r=s;}s->next=NULL; } //基本運算,在n之前插入一節點插入數據元素(思路:先找到此時n之前的節點m,然后插入到m之后)(換個思路也可以用于插入到節點m之后) bool ListInsert(noed *L,int i,ElemType e) {int j=1;//在矛個位置,要插入的位置,找到要插入的位置之前的元素node *p=L,*s;while(j<i&&p!=NULL){j++;p=p->text;}if(p==NULL)return false;else{s=new node;s->num=e;s->next=p->next;p->next->prior=s;p->next=s;s->prior=p;return true;} } //在雙鏈表中刪除某一個節點i(p之后的一個節點)(思路:要找到p這個節點,進行刪除) bool ListDeletd(node*L,int i,int e) {int j=1;node *p=L,*q;while(j<i&&p!=NULL){p=p->next;j++;}if(p==NULL)return false;else{q=p->next;/*if(q=NULL)return false;else*/e=q->num;//刪除的節點的那個值,(具體分析)p->next=q->next;//借用q(用p->next=p->next->next?)q->next->prior=p;//p->next->prior=p;這句話不對,之前p->next值已經改變了delete q;//q一定是要出現的,因為最后要刪除這個節點return true;} }
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的“双向链表的一些基本操作”的全部內容,希望文章能夠幫你解決所遇到的問題。

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