



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、昆明理工大學(xué)信息工程與自動化學(xué)院學(xué)生實驗報告( 20112012 學(xué)年 第 1 學(xué)期)課程名稱:數(shù)據(jù)結(jié)構(gòu)開課實驗室:信自樓 4422011 年 11月08日年級、專業(yè)、班學(xué)號姓名成績實驗項目名稱線性表鏈?zhǔn)酱鎯\算的算法實現(xiàn)指導(dǎo)教師教師評語教師簽名:年月日1、程序功能:(1) . 線性表鏈?zhǔn)酱鎯\算的的主要函數(shù)設(shè)置如下:1.主程序:void main()linkList *head=NULL;char ch;int i,key;doch=caiDan();printf("%c",ch);getch();printf("n");switch(ch)case
2、'1': head=createList();printf("n鏈表被成功的創(chuàng)建");getch();break;case '2': display(head);if(head=NULL) getch(); break; else printf("n請輸入你想插入的元素:");scanf("%d",&key);printf(" 請輸入你想插入的位置:");scanf("%d",&i);insert(head,key,i);break; case &
3、#39;3': display(head);if(head=NULL) getch(); break; else printf("n請輸入你想刪除元素的位置:");scanf("%d",&i);Delete(head,i-1);break; case '4': display(head);getch();break;case '5': exit(0);while(ch!='5');2.鏈表的建立linkList *createList()int num;linkList *head,*s,*
4、r;head=NULL;r=NULL;printf(" 請輸入元素 (輸入 0 時停止 ):");scanf("%d",&num);while(num!=00)s=(linkList*)malloc(sizeof(linkList);s->data=num;if(head=NULL) head=s;else r->next=s;r=s;printf(" 請輸入元素 (輸入 0 時停止 ):");scanf("%d",&num);3.鏈表的數(shù)據(jù)插入void insert(linkList
5、*L,dataType x,int i)linkList *p;int j;j=i-1;p=get(L,j);if(p=NULL)printf(" 插入失?。?n");getch();else insertAfter(p,x);printf("n插入成功! ");getch();4.鏈表的數(shù)據(jù)刪除void Delete(linkList *L,int i)int j;linkList *p;j=i-1;p=get(L,j);if(p!=NULL&&p->next!=NULL)deleteAfter(p);printf("n
6、刪除成功 ");getch();elseprintf(" 刪除失敗 n");getch();5.鏈表的輸出void display(linkList *head)int i=1;if(head=NULL)printf("Empty Listn");while(head!=NULL)printf("Index%d:%dn",i,head->data);head=head->next;i+;char caiDan()char ch;doprintf("1: 創(chuàng)建一個鏈表n");printf(&qu
7、ot;2: 插入 n");printf("3: 刪除 n");printf("4: 顯示 n");printf("5: 退出 n");printf(" 請選擇 :");while(ch=getch(),ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5');return ch;(2) .程序代碼如下:#include<std
8、io.h>#include<conio.h>#include<malloc.h>#include<stdlib.h>typedef int dataType;typedef struct nodedataType data;struct node *next;linkList;linkList *createList()int num;linkList *head,*s,*r;head=NULL;r=NULL;printf(" 請輸入元素 (輸入 0 時停止 ):");scanf("%d",&num);w
9、hile(num!=00)s=(linkList*)malloc(sizeof(linkList);s->data=num;if(head=NULL) head=s;else r->next=s;r=s;printf(" 請輸入元素 (輸入 0 時停止 ):");scanf("%d",&num);if(r!=NULL) r->next=NULL;return head;linkList *get(linkList *head,int i)int j;linkList *p;p=head;j=0;while(p->next!
10、=NULL)&&(j<i)p=p->next;j+;if(i=j) return p;else return NULL;linkList *locate(linkList *head,dataType key)linkList *p;p=head->next;while(p!=NULL)if(p->data!=key)p=p->next;else break;return p;void insertAfter(linkList *p,dataType x)linkList *s;s=(linkList*)malloc(sizeof(linkList
11、);s->data=x;s->next=p->next;p->next=s;void insertBefore(linkList *p,dataType x)linkList *s;s=(linkList*)malloc(sizeof(linkList);s->data=p->data;s->next=p->next;p->next=s;p->data=x;void insert(linkList *L,dataType x,int i)linkList *p;int j;j=i-1;p=get(L,j);if(p=NULL)prin
12、tf(" 插入失敗! n");getch();else insertAfter(p,x);printf("n插入成功! ");getch();void deleteAfter(linkList *p)linkList *r;r=p->next;p->next=r->next;free(r);void Delete(linkList *L,int i)int j;linkList *p;j=i-1;p=get(L,j);if(p!=NULL&&p->next!=NULL)deleteAfter(p);printf(&
13、quot;n刪除成功 ");getch();elseprintf(" 刪除失敗 n");getch();void display(linkList *head)int i=1;if(head=NULL)printf("Empty Listn");while(head!=NULL)printf("Index%d:%dn",i,head->data);head=head->next;i+;char caiDan()char ch;doprintf("1: 創(chuàng)建一個鏈表n");printf(&quo
14、t;2: 插入 n");printf("3: 刪除 n");printf("4: 顯示 n");printf("5: 退出 n");printf(" 請選擇 :");while(ch=getch(),ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5');return ch;void main()linkList *head=NU
15、LL;char ch;int i,key;doch=caiDan();printf("%c",ch);getch();printf("n");switch(ch)case '1': head=createList();printf("n鏈表被成功的創(chuàng)建");getch();break;case '2': display(head);if(head=NULL) getch(); break; else printf("n請輸入你想插入的元素:");scanf("%d"
16、;,&key);printf(" 請輸入你想插入的位置:");scanf("%d",&i);insert(head,key,i);break; case '3': display(head);if(head=NULL) getch(); break; else printf("n請輸入你想刪除元素的位置:");scanf("%d",&i);Delete(head,i-1);break; case '4': display(head);getch();break;case '5': exit(0);while(ch!='5');二、實驗報告:(1).運行截圖如下:1)創(chuàng)建一個鏈表:2)插入元素:3)刪除元素:4)顯示插入和刪除操作后的鏈表:5)退出(2). 總結(jié)比較線性表順序存儲與鏈?zhǔn)酱鎯Φ母髯蕴攸c。1.線性表的順序存儲順序存儲結(jié)構(gòu)就是用一組地址連續(xù)
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZMDS 20003-2024 醫(yī)療器械網(wǎng)絡(luò)安全風(fēng)險控制 醫(yī)療器械網(wǎng)絡(luò)安全能力信息
- 二零二五年度建筑施工現(xiàn)場安全教育培訓(xùn)協(xié)議
- 2025年度能源行業(yè)員工用工合同樣本
- 2025年度花卉養(yǎng)護與花卉市場銷售渠道合作合同
- 2025年度網(wǎng)絡(luò)安全優(yōu)先股入股協(xié)議
- 二零二五年度內(nèi)架承包與施工合同終止及清算協(xié)議
- 二零二五年度車輛交易抵押借款服務(wù)協(xié)議
- 2025年度職業(yè)技能提升家教合同
- 二零二五年度合作社入股農(nóng)業(yè)知識產(chǎn)權(quán)入股協(xié)議
- 2025年度車輛抵押權(quán)法律咨詢合同
- 兒童尿道黏膜脫垂介紹演示培訓(xùn)課件
- 下肢骨關(guān)節(jié)損傷課件
- 2023發(fā)電企業(yè)防汛工作管理辦法
- 食品安全風(fēng)險評估的課件
- 復(fù)方板藍根顆粒工藝驗證方案大全
- 信息技術(shù)拓展模塊高職PPT完整全套教學(xué)課件
- 高效空調(diào)制冷機房智能控制系統(tǒng)技術(shù)規(guī)程
- 《動物王國開大會》說課PPT
- 春玉米套種秋黃瓜技術(shù)
- QC成果提高工業(yè)廠房基礎(chǔ)預(yù)埋地腳螺栓的精確度
- 四年級下冊勞動技術(shù)教案
評論
0/150
提交評論