單鏈表的應(yīng)用_第1頁
單鏈表的應(yīng)用_第2頁
單鏈表的應(yīng)用_第3頁
單鏈表的應(yīng)用_第4頁
單鏈表的應(yīng)用_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)二、單鏈表的應(yīng)用 專 業(yè) * 班 級(jí) * 學(xué) 號(hào) * 學(xué)生姓名 * 指導(dǎo)老師 * *學(xué)院 *年*月*日一、實(shí)驗(yàn)?zāi)康?熟練掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的建立方法以及基本操作算法,并根據(jù)實(shí)際問題的要求,靈活運(yùn)用。 二、實(shí)驗(yàn)內(nèi)容本次實(shí)驗(yàn)要求以班級(jí)學(xué)生信息作為管理對(duì)象,根據(jù)實(shí)驗(yàn)一建立班級(jí)學(xué)生信息線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),并練習(xí)使用單鏈表的基本操作算法,實(shí)現(xiàn)對(duì)班級(jí)學(xué)生信息的管理,包括學(xué)生信息的插入、學(xué)生信息的刪除、學(xué)生信息的查詢和學(xué)生信息線性表的輸出。1、學(xué)生信息管理主控程序的設(shè)計(jì) 學(xué)生信息管理系統(tǒng) 1、學(xué)生信息線性表的建立 2、插入學(xué)生信息 3、查詢學(xué)生信息 4、刪除學(xué)生信息 5、輸出所有

2、學(xué)生信息 0、退出管理系統(tǒng)請(qǐng)選擇05:2、學(xué)生信息管理功能函數(shù)的設(shè)計(jì)(1) 設(shè)計(jì)函數(shù)createList(),建立學(xué)生信息單鏈表;(2) 設(shè)計(jì)函數(shù)printList(),輸出學(xué)生信息單鏈表中的各項(xiàng)內(nèi)容;(3) 設(shè)計(jì)函數(shù)insert(), 在學(xué)生信息單鏈表中插入新的學(xué)生信息結(jié)點(diǎn);(4) 設(shè)計(jì)函數(shù)findList(), 在學(xué)生信息單鏈表中實(shí)現(xiàn)按學(xué)號(hào)和姓名兩種方式查詢學(xué)生信息;(5) 設(shè)計(jì)函數(shù)delNode(),在學(xué)生信息單鏈表中刪除指定學(xué)生的信息; 三、完成情況 #include <stdio.h>#include <string.h>#define MAXSIZE 100

3、typedef struct char num8;/*學(xué)號(hào)*/ char name9;/*姓名*/ char gender3;/*性別*/ int score;/*成績(jī)*/DataType;typedef struct DataType stu; struct LinkList *next;ListNode,*LinkList;int menu_select()int sn;printf("n 學(xué)生信息管理系統(tǒng)n");printf("=n");printf(" 1.學(xué)生信息線性表的建立n");printf(" 2.插 入 學(xué)

4、 生 信 息n");printf(" 3.查 詢 學(xué) 生 信 息n");printf(" 4.刪 除 學(xué) 生 信 息n");printf(" 5.輸 出 所有學(xué)生信息n");printf(" 0.退 出 管 理 系 統(tǒng)n");printf("=n");printf("請(qǐng)選擇0-5:n");for(;)scanf("%d",&sn);if (sn<0 | sn>5) printf("nt輸入錯(cuò)誤,重選0-5n"

5、;);else break;return sn;LinkList createList()int n,i;LinkList p,head;printf("有幾位學(xué)生?請(qǐng)輸入:n");fflush(stdin);scanf("%d",&n);printf("以下請(qǐng)輸入這%d位學(xué)生的信息:n",n);head=(LinkList)malloc(sizeof(ListNode);head->next=NULL;for(i=n;i>0;i-)p=(LinkList) malloc (sizeof(ListNode);pri

6、ntf("n學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n");scanf("%s%s%s%d",&p->stu.num,&p->,&p->stu.gender,&p->stu.score);p->next=head->next; head->next=p; return head;void printList(LinkList L)LinkList p;printf("n學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n");printf("-n"

7、);p=L;p=p->next;while(p!=NULL)printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.score);p=p->next;printf("-n");void insert(LinkList L,DataType *student,int i)int j;LinkList s,p;p=L;j=0;while(L&& j<i-1)p=p->next;+j; /尋找第i -1個(gè)結(jié)點(diǎn)if(!L|

8、j>i-1) printf("ERROR");s=(LinkList*)malloc(sizeof(LinkList);strcpy(s->stu.num,student->num);strcpy(s->,student->name);strcpy(s->stu.gender,student->gender);s->stu.score=student->score;s->next=p->next;p->next=s;int findList(LinkList L)char num8;ch

9、ar name9;int i=0,xz;LinkList p;p=L;printf("=n");printf("1、按學(xué)號(hào)查詢n");printf("2、按姓名查詢n");printf("=n");printf(" 請(qǐng)選擇: ");fflush(stdin);scanf("%d",&xz);if (xz=1) printf("請(qǐng)輸入要查找學(xué)生的學(xué)號(hào):"); scanf("%s",num); p=p->next; while

10、(p!=NULL) if(strcmp(p->stu.num,num)=0) printf("您要查的學(xué)生為:n學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n"); printf("-n"); printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.score); printf("-n"); break; else if (xz=2) printf("請(qǐng)輸入要查找學(xué)生的姓名:"); scanf(&qu

11、ot;%s",name); p=p->next; while(p!=NULL) if(strcmp(p->,name)=0) printf("您要查的學(xué)生為:n學(xué)號(hào)(8) 姓名(8) 性別 成績(jī)n"); printf("-n"); printf("%s,%s,%s,%dn",p->stu.num,p->,p->stu.gender,p->stu.score); printf("-n"); break; void delNode(LinkL

12、ist L)int j;char i;LinkList q,p;DataType e;j=0;p=L;printf("請(qǐng)先查找您要?jiǎng)h除的學(xué)生學(xué)號(hào):");scanf("%s",&i);p=p->next;while(strcmp(p->stu.num,i)!=0) p=p->next; +j;if(!(p->next) | j>i-1) printf("ERROR");q=p->next; p->next=q->next;e=q->stu; free(q);void main

13、() DataType *student; int i; LinkList head; while(1) switch(menu_select() case 1:printf("*n");printf(" 學(xué)生信息線性表的建立 n");printf("*n");head=createList();break; case 2:printf("*n");printf("添加學(xué)生信息n");printf("請(qǐng)輸入要添加的學(xué)生信息:n");printf("n學(xué)號(hào)(8) 姓名

14、(8) 性別 成績(jī)n");printf("*n");student=(DataType *)malloc(sizeof(DataType);fflush(stdin);scanf("%s%s%s%d",student->num,student->name,student->gender,&student->score);printf("請(qǐng)輸入要插入的位置:n");fflush(stdin);scanf("%d",&i);insert(head,student,i);

15、 break; case 3:printf("*n");printf("查詢學(xué)生信息n");printf("*n");findList(head);break; case 4:printf("*n");printf("刪除學(xué)生信息n");printf("*n");delNode(head); break; case 5:printf("*n");printf("輸出所有學(xué)生信息n");printf("*n");printList(head);break; case 0:printf("再見!n");getchar();return; 四、實(shí)驗(yàn)結(jié)果 1. 建立學(xué)生鏈表:鏈表信息:學(xué)號(hào)姓名性別成績(jī)1001LiSiM901002LiFangW951003WangWuM892. 查詢學(xué)生信息:按學(xué)號(hào)查詢(1)輸入要查找的學(xué)生學(xué)號(hào):1003屏幕顯示:1003,WangWu,M,893. 插入學(xué)生信息:1004 LiChen W 92插入位置:14. 輸出所有學(xué)生信息:1004,LiChen,W,921003,WangWu,M,891002,LiFang,W,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論