數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)一實(shí)驗(yàn)報(bào)告_第1頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)一實(shí)驗(yàn)報(bào)告_第2頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)一實(shí)驗(yàn)報(bào)告_第3頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)一實(shí)驗(yàn)報(bào)告_第4頁
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)一實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

.z.班級(jí)::**:實(shí)驗(yàn)一線性表的根本操作實(shí)驗(yàn)?zāi)康?、掌握線性表的定義;2、掌握線性表的根本操作,如建立、查找、插入和刪除等。實(shí)驗(yàn)容定義一個(gè)包含學(xué)生信息〔**,,成績〕的順序表和鏈表〔二選一〕,使其具有如下功能:(1)根據(jù)指定學(xué)生個(gè)數(shù),逐個(gè)輸入學(xué)生信息;(2)逐個(gè)顯示學(xué)生表中所有學(xué)生的相關(guān)信息;(3)根據(jù)進(jìn)展查找,返回此學(xué)生的**和成績;(4)根據(jù)指定的位置可返回相應(yīng)的學(xué)生信息〔**,,成績〕;(5)給定一個(gè)學(xué)生信息,插入到表中指定的位置;(6)刪除指定位置的學(xué)生記錄;(7)統(tǒng)計(jì)表中學(xué)生個(gè)數(shù)。實(shí)驗(yàn)環(huán)境VisualC++程序分析與實(shí)驗(yàn)結(jié)果*include<stdio.h>*include<malloc.h>*include<stdlib.h>*include<string.h>*defineOK1*defineERROR0*defineOVERFLOW-2typedefintStatus; //定義函數(shù)返回值類型typedefstruct{ charnum[10];//** charname[20];// doublegrade;//成績}student;typedefstudentElemType;typedefstructLNode{ ElemTypedata;//數(shù)據(jù)域 structLNode*ne*t;//指針域}LNode,*LinkList;StatusInitList(LinkList&L)//構(gòu)造空鏈表L{ L=(structLNode*)malloc(sizeof(structLNode)); L->ne*t=NULL; returnOK;}StatusGetElem(LinkListL,inti,ElemType&e)//訪問鏈表,找到i位置的數(shù)據(jù)域,返回給e{ LinkListp; p=L->ne*t; intj=1; while(p&&j<i) { p=p->ne*t; ++j; } if(!p||j>i) returnERROR; e=p->data; returnOK;}StatusSearch(LNodeL,charstr[],LinkList&p)//根據(jù)名字查找{ p=L.ne*t; while(p) { if(strcmp(p->,str)==0) returnOK; p=p->ne*t; } returnERROR;}StatusListInsert(LinkListL,inti,ElemTypee)//在i個(gè)位置插入*個(gè)學(xué)生的信息{ LinkListp,s; p=L; intj=0; while(p&&j<i-1) { p=p->ne*t; ++j; } if(!p||j>i-1) returnERROR; s=(structLNode*)malloc(sizeof(LNode)); s->data=e; s->ne*t=p->ne*t; p->ne*t=s; returnOK;}StatusListDelete(LinkListp,inti)//刪除i位置的學(xué)生信息{ intj=0; while((p->ne*t)&&(j<i-1)) { p=p->ne*t; ++j; } if(!(p->ne*t)||(j>i-1)) returnERROR; LinkListq; q=p->ne*t; p->ne*t=q->ne*t; deleteq; returnOK;}voidInput(ElemType*e){ printf(":"); scanf("%s",e->name); printf("**:"); scanf("%s",e->num); printf("成績:"); scanf("%lf",&e->grade); printf("輸入完成\n\n");}voidOutput(ElemType*e){ printf(":%-20s\n**:%-10s\n成績:%-10.2lf\n\n",e->name,e->num,e->grade);}intmain(){ LNodeL; LinkListp; ElemTypea,b,c,d; printf("\n********************************\n\n"); puts("1.構(gòu)造鏈表"); puts("2.錄入學(xué)生信息"); puts("3.顯示學(xué)生信息"); puts("4.輸入,查找該學(xué)生"); puts("5.顯示*位置該學(xué)生信息"); puts("6.在指定位置插入學(xué)生信息"); puts("7.在指定位置刪除學(xué)生信息"); puts("8.統(tǒng)計(jì)學(xué)生個(gè)數(shù)"); puts("0.退出"); printf("\n********************************\n\n"); int*,choose=-1; while(choose!=0) { puts("請(qǐng)選擇:"); scanf("%d",&choose); switch(choose) { case1: if(InitList(p)) printf("成功建立鏈表\n\n"); else printf("鏈表建立失敗\n\n"); break; case2: printf("請(qǐng)輸入要錄入學(xué)生信息的人數(shù):"); scanf("%d",&*); for(inti=1;i<=*;i++) { printf("第%d個(gè)學(xué)生:\n",i); Input(&a); ListInsert(&L,i,a); } break; case3: for(inti=1;i<=*;i++) { GetElem(&L,i,b); Output(&b); } break; case4: chars[20]; printf("請(qǐng)輸入要查找的學(xué)生:"); scanf("%s",s); if(Search(L,s,p)) Output(&(p->data)); else puts("對(duì)不起,查無此人"); puts("); break; case5: printf("請(qǐng)輸入要查詢的位置:"); intid1; scanf("%d",&id1); GetElem(&L,id1,c); Output(&c); break; case6: printf("請(qǐng)輸入要插入的位置:"); intid2; scanf("%d",&id2); printf("請(qǐng)輸入學(xué)生信息:\n"); Input(&d); if(ListInsert(&L,id2,d)) { *++; puts("插入成功"); puts("); } else { puts("插入失敗"); puts("); } break; case7: printf("請(qǐng)輸入要?jiǎng)h除的位置:"); intid3; scanf("%d",&id3); if(ListDelete(&L,id3)) { *--; puts("刪除成功"); puts("); } else { puts("刪除失敗"); puts("); } break; case8: printf("已錄入的學(xué)生個(gè)數(shù)為:%d\n\n",*); break; } } printf("\n\n您的使用,請(qǐng)按任意鍵退出\n\n\n"); system("pause"); return0;}用戶界面:根據(jù)指定學(xué)生個(gè)數(shù),逐個(gè)輸入學(xué)生信息:逐個(gè)顯示學(xué)生表中所有學(xué)生的相關(guān)信息:根據(jù)進(jìn)展查找,返回此學(xué)生的**和成績:根據(jù)指定的位置可返回相應(yīng)的學(xué)生信息〔**,,成績〕:給定一個(gè)學(xué)生信息,插入到表中指定的位置:刪除指定位置的學(xué)生記錄:統(tǒng)計(jì)表中學(xué)生個(gè)數(shù):實(shí)驗(yàn)總結(jié)數(shù)據(jù)構(gòu)造是一門專業(yè)技術(shù)根底課。它要求學(xué)會(huì)分析研究計(jì)算機(jī)加工的數(shù)據(jù)構(gòu)造的特性,以便為應(yīng)用涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫎?gòu)造,存儲(chǔ)構(gòu)造及相應(yīng)的算法,

溫馨提示

  • 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)論