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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性表——链表删除

發(fā)布時(shí)間:2024/7/19 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性表——链表删除 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

王道鏈表題1-4

#include <iostream> #include <bits/stdc++.h> using namespace std;typedef int Elemtype; //定義單鏈表 typedef struct Lnode{Elemtype data;struct Lnode *next; }Lnode,*Linklist; int a[4]={1,2,3,4}; int n=4;//建立不帶頭節(jié)點(diǎn)的鏈表 void buildlist(Lnode *L){Lnode *s,*r=L;r->data=a[0];if(n==1)r->next=NULL;else for(int i=1;i<n;i++){s=(Lnode*)malloc(sizeof(Lnode));s->data=a[i];r->next=s;r=r->next;}L=(Linklist)malloc(sizeof(Lnode));L->next=NULL;}//頭插法建立單鏈表 Linklist list_headinsert(Linklist &L){Lnode *s;int x;L=(Linklist)malloc(sizeof(Lnode));L->next=NULL;scanf("%d",&x);while(x!=9999){s=(Lnode*)malloc(sizeof(Lnode));s->data=x;s->next=L->next;L->next=s;scanf("%d",&x);}return L; } /**** * **///尾插法建立單鏈表 Linklist List_TailInsert(Linklist &L){int x;L=(Linklist)malloc(sizeof(Linklist));Lnode *s,*r=L;scanf("%d",&x);while(x!=9999){s=(Lnode*)malloc(sizeof(Lnode));s->data=x;//和頭插法不同r->next=s;r=s;//scanf("%d",&x);}r->next=NULL;return L; }void disp(Lnode *L){Lnode *s=L;while(s){cout<<(s->data)<<" ";s=s->next;}cout<<endl; }void deletex(Lnode *&L,int x){if(L==NULL)return;Lnode *p;if(L->data=x){p=L;L=L->next;free(p);deletex(L,x);}elsedeletex(L->next,x);}//用p從頭到尾掃描鏈表,pre指向p的前驅(qū),如果p=x,則將p刪除 void del_x_1(Linklist &L,Elemtype x){Lnode *p=L->next,*pre=L,*q;//初始化p和prewhile(p!=NULL){if(p->data==x){q=p;p=p->next;pre->next=p;free(q);}else{pre=p;p=p->next;}} } //使用從頭到尾反向輸出鏈表 //遞歸 void R_Print(Lnode *&L){Lnode *p=L;if(p!=NULL){R_Print(L->next);printf("%d ",p->data);} }//刪除值最小節(jié)點(diǎn)(唯一) void del_min(Linklist &L){Lnode *pre=L,*p=L->next,*q=L->next;while(q!=NULL){if((q->data)<(p->next->data)){p=pre;pre=q;q=q->next;}else{pre=q;q=q->next;}}q=p->next;p->next=p->next->next;free(q); }/** int main() {Lnode list;Lnode *L=&list;buildlist(L);disp(L);return 0; }int main() {Lnode list;Lnode *L=&list;List_TailInsert(L);del_x_1(L,1);disp(L);return 0; }int main() {Lnode list;Lnode *L=&list;List_TailInsert(L);R_Print(L);return 0; }**/int main() {Lnode list;Lnode *L=&list;List_TailInsert(L);del_min(L);disp(L);return 0; }

總結(jié)

以上是生活随笔為你收集整理的线性表——链表删除的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。