五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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; }

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

分享到微博請遵守國家法律
通州区| 罗田县| 灌南县| 霍州市| 利津县| 新蔡县| 东阿县| 宜阳县| 方正县| 丰镇市| 石家庄市| 怀安县| 深州市| 曲阳县| 邯郸县| 和硕县| 吉隆县| 武汉市| 招远市| 阿尔山市| 买车| 贵州省| 兴仁县| 安阳县| 乌拉特后旗| 台中县| 阿巴嘎旗| 台山市| 佳木斯市| 马边| 三门峡市| 贡嘎县| 苍山县| 家居| 娄底市| 无极县| 竹山县| 安化县| 深水埗区| 南部县| 额尔古纳市|