最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

鏈表的完整操作

2023-06-04 14:22 作者:夏師傅ber  | 我要投稿

第一次寫鏈表 #include #include #define K 20 //定義K為鏈表的最大長度? typedef struct lnode //此處一定要有結(jié)構(gòu)體名? { int number; struct lnode* pNext; //此處的成員名至關(guān)重要 ,即此處的stu? }*Link,Node; //同時(shí)應(yīng)該再定義node類型? //創(chuàng)建頭節(jié)點(diǎn)? Link CreateHead() { Link LinkHead=(Link)malloc(sizeof(Node));//此時(shí)sizeof后面應(yīng)該跟Node,而不是原先的Link? LinkHead->number=0; //應(yīng)該定義這個(gè)頭節(jié)點(diǎn)的數(shù)據(jù),這一行是原先無的,其實(shí)也可以不定義? LinkHead->pNext=NULL;? return LinkHead; } //頭插法初始化鏈表? Link HeadInitLink(Link HeadPtr,int length) { int i; printf("請逆序依次輸入值,輸入-1退出賦值\n"); Link ptemp=HeadPtr; //保存頭結(jié)點(diǎn)便于返回? for(i=0;inumber); //注意scanf都要加 & 這個(gè)符號? if(Ls->number==-1) //加入退出的條件? { break; }? //將新節(jié)點(diǎn)插入到鏈表頭部? Ls->pNext=ptemp->pNext; //此處應(yīng)該理解為將ptemp的next域空指針賦值給Ls的pNext域, //而不是之前理解的“指向”? ptemp->pNext=Ls; /?emp=Ls; //printf("%d\n",Ls->number); } printf("當(dāng)前鏈表長度為%d\n",i); //return HeadPtr; //return i;? } //尾插法初始化鏈表? Link TailInitLink(Link HeadPtr,int length) { int i; Link ptemp=(Link)malloc(sizeof(Link)); ptemp=HeadPtr; printf("請正序依次輸入值,輸入-1退出賦值\n"); for(i=0;inumber); if(Ln->number==-1) //加入退出的條件? { Ln->pNext=NULL; //將此處指針的next域置空? break; }? ptemp->pNext=Ln; Ln->pNext=NULL; ptemp=Ln; } printf("當(dāng)前鏈表長度為%d\n",i); //return HeadPtr; } //遍歷 void Display(Link HeadPtr)? { Link ptemp=HeadPtr->pNext; while(ptemp!=NULL) { printf("%d\n",ptemp->number); ptemp=ptemp->pNext; } } //查找與取值 LinkRetab(Link HeadPtr,int a) { Link ptemp=HeadPtr->pNext; int i; for(i=1;i<=K;i++) { if(ptemp->number==a||!ptemp) { printf("%d\n",ptemp->number); printf("查找的數(shù)據(jù)所在位置為%d\n",i);? break; } else { ptemp=ptemp->pNext; if(ptemp==NULL) { printf("未查找到數(shù)據(jù),您輸入的數(shù)據(jù)不在鏈表里\n"); } } } } //插入元素? void LinkInsert(Link HeadPtr,int place,int m) { Link newnode=(Link)malloc(sizeof(Node)); Link ptemp=HeadPtr; int i; newnode->number=m; for(i=1;i<=K;i++) { ptemp=ptemp->pNext; if(i==place) { newnode->pNext=ptemp->pNext; ptemp->pNext=newnode; break; } if(!ptemp){ break;} } } //刪除 //終于來到了最后一個(gè)函數(shù) void DeleteNode(Link HeadPtr,int place) { Link ptemp=HeadPtr; Link paft=ptemp->pNext; int i=0; while(paft!=NULL) { ptemp=ptemp->pNext; paft =paft ->pNext; i++;? if(i==place) { ptemp->pNext=paft->pNext; free(paft); paft=ptemp->pNext; } } ?}? int main() { int a,b,c,d,e; //使用函數(shù)創(chuàng)建頭節(jié)點(diǎn) Link NewHead=CreateHead(); //選擇頭插或尾插法創(chuàng)建鏈表?? printf("請選擇使用頭插法(輸入1)還是尾插法(輸入0)創(chuàng)建鏈表"); scanf("%d",&a); if(a==0) { TailInitLink(NewHead,K);} else if(a==1) { HeadInitLink(NewHead,K);} else { printf("輸入有誤\n"); return 1;} //遍歷單鏈表? Display(NewHead); //返回單鏈表的值和位置? printf("請輸入要返回的元素\n"); scanf("%d",&b); LinkRetab(NewHead,b); //在特定位置插入節(jié)點(diǎn)和值 printf("請輸入要插入元素的位置和要插入的值\n"); scanf("%d",&c); scanf("%d",&d); printf("重新遍歷\n"); LinkInsert(NewHead,c-1,d); Display(NewHead); //刪除節(jié)點(diǎn)和元素 printf("請輸入要?jiǎng)h除的節(jié)點(diǎn)\n"); scanf("%d",&e); DeleteNode(NewHead,e-1); printf("再次遍歷\n"); Display(NewHead); return 0; }

鏈表的完整操作的評論 (共 條)

分享到微博請遵守國家法律
宝山区| 伊吾县| 航空| 浏阳市| 五指山市| 江永县| 垦利县| 望奎县| 固阳县| 马公市| 榆中县| 汉寿县| 巴彦县| 长春市| 西吉县| 大田县| 邯郸市| 祁连县| 东兴市| 北票市| 罗甸县| 商河县| 台东县| 宁明县| 漳平市| 油尖旺区| 通山县| 高阳县| 永川市| 大石桥市| 肥城市| 武山县| 周宁县| 宜兰县| 南昌市| 长兴县| 凤山县| 宜川县| 呼伦贝尔市| 宁城县| 肃南|