資源描述:
《鏈表的建立插入刪除輸出全.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、/*-----------------------------------------------------------------------------時(shí)間:2011年9月28日文件功能:實(shí)現(xiàn)了動(dòng)態(tài)建立一個(gè)學(xué)生信息的鏈表包括鏈表的創(chuàng)建、插入、刪除、和打印輸出學(xué)生信息包括姓名和分?jǐn)?shù)本鏈表是帶有頭結(jié)點(diǎn)的,頭結(jié)點(diǎn)的內(nèi)容為空內(nèi)容-----------------------------------------------------------------------------*//*-------------------------包含頭文件----------
2、--------------------------*/#include#include#include#include/*-------------------------結(jié)構(gòu)體定義部分------------------------------*/structNode{?charname[10];?intscore;?structNode*next;};typedefstructNodeListNode;/*----------------------------函數(shù)聲明部分----
3、--------------------------*//*---------------------------函數(shù)實(shí)現(xiàn)部分-------------------------------*//*-----------------------------創(chuàng)建鏈表---------------------------------*//*在鏈表的末端插入新的節(jié)點(diǎn),建立鏈表*/ListNode*CreateList(intn){?ListNode*head;//指向頭結(jié)點(diǎn)指針?ListNode*p,*pre;?inti;?head=(ListNode*)malloc(s
4、izeof(ListNode));//為頭節(jié)點(diǎn)分配內(nèi)存空間?head->next=NULL;//將頭結(jié)點(diǎn)的指針域清空?pre=head;//先將頭結(jié)點(diǎn)首地址賦給中間變量pre?for(i=1;i<=n;i++)//通過for循環(huán)不斷加入新的結(jié)點(diǎn)??{???printf("inputnameofthe%dstudent:",i);//打印出第幾個(gè)人的名字???p=(ListNode*)malloc(sizeof(ListNode));//為要插入的節(jié)點(diǎn)分配???//內(nèi)存空間p指向新插入結(jié)點(diǎn)的首地址???scanf("%s",&p->name);//輸入姓名???pr
5、intf("inputscoreofthe%dstudent:",i);???scanf("%d",&p->score);//輸入分?jǐn)?shù)???pre->next=p;//將p指向新結(jié)點(diǎn)插入鏈表也就是頭結(jié)點(diǎn)指針域指向???//下個(gè)結(jié)點(diǎn)???//第一個(gè)結(jié)點(diǎn)就是p指向的,因?yàn)轭^結(jié)點(diǎn)內(nèi)容為空???pre=p;//這個(gè)起著指向下一個(gè)結(jié)點(diǎn)的作用??}?p->next=NULL;//最后將最后一個(gè)結(jié)點(diǎn)的指針域清空了?returnhead;//返回這個(gè)鏈表的首地址}/*-------------------------輸出鏈表----------------------------
6、-------*/voidPrintList(ListNode*h){?ListNode*p;?p=h->next;?while(p)??{???printf("%s,%d",p->name,p->score);???p=p->next;???printf("");??}}/*----------------------插入鏈表結(jié)點(diǎn)--------------------------*//*--------------------------------------------------------------------函數(shù)名稱:InsertList(Li
7、stNode*h,inti,charname[],inte,intn)函數(shù)功能:插入鏈表結(jié)點(diǎn)入口參數(shù):h:頭結(jié)點(diǎn)地址i:插入到第幾個(gè)結(jié)點(diǎn)name:插入結(jié)點(diǎn)的姓名e:插入結(jié)點(diǎn)的分?jǐn)?shù)n:鏈表中結(jié)點(diǎn)的個(gè)數(shù)除下頭結(jié)點(diǎn)外的個(gè)數(shù)出口參數(shù):--------------------------------------------------------------------*/voidInsertList(ListNode*h,inti,charname[],inte,intn){?ListNode*q,*p;//先定義2個(gè)指向一個(gè)結(jié)點(diǎn)的指針?intj;?if(i<1
8、
9、i>n
10、+1)??