數(shù)據(jù)結(jié)構(gòu)實驗一實驗報告_第1頁
數(shù)據(jù)結(jié)構(gòu)實驗一實驗報告_第2頁
數(shù)據(jù)結(jié)構(gòu)實驗一實驗報告_第3頁
數(shù)據(jù)結(jié)構(gòu)實驗一實驗報告_第4頁
數(shù)據(jù)結(jié)構(gòu)實驗一實驗報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精品文檔. 班級:姓名:學(xué)號:實驗一線性表的基本操作一、 實驗?zāi)康?、掌握線性表的定義;2、掌握線性表的基本操作,如建立、查找、插入和刪除等。二、 實驗內(nèi)容定義一個包含學(xué)生信息(學(xué)號,姓名,成績)的順序表和鏈表(二選一),使其具有如下功能:(1) 根據(jù)指定學(xué)生個數(shù),逐個輸入學(xué)生信息;(2) 逐個顯示學(xué)生表中所有學(xué)生的相關(guān)信息;(3) 根據(jù)姓名進行查找,返回此學(xué)生的學(xué)號和成績;(4) 根據(jù)指定的位置可返回相應(yīng)的學(xué)生信息(學(xué)號,姓名,成績);(5) 給定一個學(xué)生信息,插入到表中指定的位置;(6) 刪除指定位置的學(xué)生記錄;(7) 統(tǒng)計表中學(xué)生個數(shù)。三、 實驗環(huán)境visual c+四、 程序分析與實驗

2、結(jié)果#include #include #include #include #define ok 1 #define error 0 #define overflow -2 精品文檔. typedef int status; / 定義函數(shù)返回值類型typedef struct char num10; / 學(xué)號char name20; / 姓名double grade; / 成績student; typedef student elemtype; typedef struct lnode elemtype data; / 數(shù)據(jù)域struct lnode *next; / 指針域lnode,*li

3、nklist; status initlist(linklist &l) / 構(gòu)造空鏈表l l=(struct lnode*)malloc(sizeof(struct lnode); l-next=null; return ok; 精品文檔. status getelem(linklist l,int i,elemtype &e) / 訪問鏈表,找到i 位置的數(shù)據(jù)域,返回給 e linklist p; p=l-next; int j=1; while(p&jnext; +j; if(!p|ji) return error; e=p-data; return ok; st

4、atus search(lnode l,char str,linklist &p) / 根據(jù)名字查找 p=l.next; while(p) 精品文檔. if(strcmp(,str)=0) return ok; p=p-next; return error; status listinsert(linklist l,int i,elemtype e) / 在 i 個位置插入某個學(xué)生的信息 linklist p,s; p=l; int j=0; while(p&jnext; +j; if(!p|ji-1) return error; s=(struct ln

5、ode*)malloc(sizeof(lnode); s-data=e; s-next=p-next; 精品文檔. p-next=s; return ok; status listdelete(linklist p,int i) / 刪除 i 位置的學(xué)生信息 int j=0; while(p-next)&(jnext; +j; if(!(p-next)|(ji-1) return error; linklist q; q=p-next; p-next=q-next; delete q; return ok; void input(elemtype *e) 精品文檔. printf( 姓

6、名:); scanf(%s,e-name); printf( 學(xué)號:); scanf(%s,e-num); printf( 成績:); scanf(%lf,&e-grade); printf( 輸入完成 nn); void output(elemtype *e) printf(姓名:%-20sn學(xué)號:%-10sn成績:%-10.2lfnn,e-name,e-num,e-grade); int main() lnode l; linklist p; elemtype a,b,c,d; printf(n*nn); puts(1. 構(gòu)造鏈表 ); puts(2. 錄入學(xué)生信息 ); puts

7、(3. 顯示學(xué)生信息 ); puts(4. 輸入姓名,查找該學(xué)生); 精品文檔. puts(5. 顯示某位置該學(xué)生信息); puts(6. 在指定位置插入學(xué)生信息); puts(7. 在指定位置刪除學(xué)生信息); puts(8. 統(tǒng)計學(xué)生個數(shù) ); puts(0. 退出); printf(n*nn); int x,choose=-1; while(choose!=0) puts( 請選擇:); scanf(%d,&choose); switch(choose) case 1: if(initlist(p) printf( 成功建立鏈表 nn); else printf( 鏈表建立失敗 n

8、n); break; case 2: printf( 請輸入要錄入學(xué)生信息的人數(shù):); scanf(%d,&x); 精品文檔. for(int i=1;i=x;i+) printf( 第%d 個學(xué)生 :n,i); input(&a); listinsert(&l,i,a); break; case 3: for(int i=1;idata); else puts( 對不起,查無此人 ); 精品文檔. puts(); break; case 5: printf( 請輸入要查詢的位置 :); int id1; scanf(%d,&id1); getelem(&

9、;l,id1,c); output(&c); break; case 6: printf ( 請輸入要插入的位置 :); int id2; scanf(%d,&id2); printf( 請輸入學(xué)生信息 :n); input(&d); if(listinsert(&l,id2,d) x+; puts( 插入成功 ); puts(); else 精品文檔. puts( 插入失敗 ); puts(); break; case 7: printf( 請輸入要刪除的位置 :); int id3; scanf(%d,&id3); if(listdelete(&am

10、p;l,id3) x-; puts( 刪除成功 ); puts(); else puts( 刪除失敗 ); puts(); break; case 8: 精品文檔. printf( 已錄入的學(xué)生個數(shù)為 :%dnn,x); break; printf(nn謝謝您的使用,請按任意鍵退出nnn); system(pause); return 0; 用戶界面 : (1) 根據(jù)指定學(xué)生個數(shù),逐個輸入學(xué)生信息:精品文檔. (2) 逐個顯示學(xué)生表中所有學(xué)生的相關(guān)信息:(3) 根據(jù)姓名進行查找,返回此學(xué)生的學(xué)號和成績:精品文檔. (4) 根據(jù)指定的位置可返回相應(yīng)的學(xué)生信息(學(xué)號,姓名,成績):(5) 給定一個學(xué)生信息,插入到表中指定的位置:(6) 刪除指定位置的學(xué)生記錄:(7) 統(tǒng)計表中學(xué)生個數(shù):五、 實驗總結(jié)數(shù)據(jù)結(jié)構(gòu)是一門專業(yè)技術(shù)基礎(chǔ)課。它要求學(xué)會分析研究計算機加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為應(yīng)用涉及的數(shù)據(jù)選擇適當?shù)倪壿嫿Y(jié)構(gòu),存儲結(jié)構(gòu)及相應(yīng)的算法,并初步掌握算法的時間分析和空間分析技術(shù)。不僅要考慮具體實現(xiàn)哪些功能,同

溫馨提示

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

評論

0/150

提交評論