c語言鏈表的插入、刪除和查找_第1頁
c語言鏈表的插入、刪除和查找_第2頁
c語言鏈表的插入、刪除和查找_第3頁
c語言鏈表的插入、刪除和查找_第4頁
c語言鏈表的插入、刪除和查找_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)報(bào)告示例 信息系情報(bào)10_級 _02_班 _2011_年_10_月_ 3日姓名_楊 健_ 學(xué)號_ 08_ 電話1實(shí)驗(yàn)題目編制一個(gè)演示單鏈表插入、刪除、查找等操作的程序2需求分析本演示程序用C語言編寫,完成單鏈表的生成,任意位置的插入、刪除,以及確定某一元素在單鏈表中的位置。 輸入的形式和輸入值的范圍:插入元素時(shí)需要輸入插入的位置和元素的值;刪除元素時(shí)輸入刪除元素的位置;查找操作時(shí)需要輸入元素的值。在所有輸入中,元素值都是整數(shù) 輸出的形式:在所有三種操作中都顯示操作是否正確以及操作后單鏈表的內(nèi)容。其中查找操作后顯示要查找元素的位置。 程序所達(dá)到的功能:完成單鏈表的生

2、成(通過插入操作)、插入、刪除、查找操作 測試數(shù)據(jù):A 插入操作中輸入1,插入位到位于1的位置 B 查找操作中輸入a,返回這個(gè)元素在單鏈表中的所有位置C 刪除操作中輸入2,刪除位于2的元素3概要設(shè)計(jì)InitLinkList(&L)操作結(jié)果:構(gòu)造一個(gè)空的單鏈表L.InsLinkList(&L,pos,e)初始條件:單鏈表L已存在操作結(jié)果:將元素e插入到單鏈表L的pos位置DelLinkList(&L,pos,&e)初始條件:單鏈表L已存在操作結(jié)果:將單鏈表L中pos位置的元素刪除LocLinkList(L,e)初始條件:單鏈表L依存在操作結(jié)果:單鏈表L中查找是否元

3、素e,若存在,返回元素在表中的位置;若不存在,輸出沒有找到.2)本程序包含6個(gè)函數(shù): 主函數(shù)main() 初始化單鏈表函數(shù)InitLinkList() 顯示單鏈表內(nèi)容函數(shù)dispLinkList() 插入元素函數(shù)InsLinkList() 刪除元素函數(shù)DelLinkList() 查找元素函數(shù)LocLinkList()4詳細(xì)設(shè)計(jì)實(shí)現(xiàn)概要設(shè)計(jì)中定義的所有的數(shù)據(jù)類型,對每個(gè)操作給出偽碼算法。對主程序和其他模塊也都需要寫出偽碼算法。1) 結(jié)點(diǎn)類型和指針類型typedef struct LinkList int data;struct LinkList *next;LIST;2) 單鏈表的基本操作為了方

4、便,在單鏈表中設(shè)頭結(jié)點(diǎn),其data域沒有意義。List InitLinkList(LinkList &L)(偽碼算法)List DispLinkList(LinkList L)(偽碼算法)List InsLinkList(LinkList &L,int pos,int e)(偽碼算法)void DelLinkList(LinkList &L,int pos,int &e)(偽碼算法)void LocLinkList(LinkList L,int e)(偽碼算法)3) 其他模塊偽碼算法5調(diào)試分析6使用說明程序執(zhí)行后顯示=0-EXIT1-INSERT2-DELETE

5、3-LOCATE=SELECT:在select后輸入數(shù)字選擇執(zhí)行不同的功能。要求首先輸入足夠多的插入元素,才可以進(jìn)行其他的操作。每執(zhí)行一次功能,就會顯示執(zhí)行的結(jié)果(正確或錯(cuò)誤)以及執(zhí)行后單鏈表的內(nèi)容。7測試結(jié)果1) 建立單鏈表:» 選擇1,分別輸入15,14,13,12,11,得到單鏈表(15,14,13,12,11)2) 插入:» 選擇1輸入(2,100),得到單鏈表(15,100,14,13,12,11)» 選擇1輸入(-1,2),顯示輸入的值不正確» 選擇1輸入(8,2),顯示輸入的值不正確» 選擇1輸入(6,2),得到單鏈表(15, 1

6、4,13,12,11,2)3) 刪除:» 選擇2,輸入2。得到單鏈表(15,13,12,11)» 選擇2,輸入1。得到單鏈表(14,13,12,11)» 選擇2,輸入4。得到單鏈表(15,14,13, 11)» 選擇2,輸入6。顯示輸入的值不正確4) 查找» 選擇3,輸入14。返回pos=2» 選擇3,輸入100。返回沒有這個(gè)數(shù)程序如下:#include<stdio.h>#include<stdlib.h>typedef struct LinkList int data;struct LinkList *nex

7、t;LIST;LIST *InitLinkList();LIST *InsLinkList(LIST *,int);LIST *DelLinkList(LIST *,int);void LocLinkList(LIST *,int);void dispLinkList(LIST *);void main()int t,i;LIST *h; h=InitLinkList();/創(chuàng)建一個(gè)單鏈表 dispLinkList(h);/輸出單鏈表printf("=n");printf("0-EXITn");printf("1-INSERTn");

8、 printf("2-DELETEn");printf("3-LOCATEn");printf("=n");printf("SELECT:");scanf("%d",&t);switch(t) case 0:break;case 1:printf("請輸入要插入的位置:"); scanf("%d",&i); h=InsLinkList(h,i);/插入結(jié)點(diǎn) dispLinkList(h);/輸出單鏈表 break;case 2:printf

9、("請輸入要?jiǎng)h除的位置:"); scanf("%d",&i); h=DelLinkList(h,i);/刪除結(jié)點(diǎn) dispLinkList(h);/輸出單鏈表 break;case 3:printf("請輸入要查找的數(shù):"); scanf("%d",&i); LocLinkList(h, i);/查找結(jié)點(diǎn) break;default : printf("輸入錯(cuò)誤!n"); break; LIST *InitLinkList()LIST *h,*s,*r;int c;h=(LIST

10、*)malloc(sizeof(LIST);r=h;printf("請輸入一串?dāng)?shù)字(以0結(jié)束):");scanf("%d",&c);while(c!=0) s=(LIST*)malloc(sizeof(LIST);s->data=c;r->next=s;r=s;scanf("%d",&c);r->next='0'return h;LIST *InsLinkList(LIST *h,int i)LIST *s,*p;int c,j=1;p=h;s=(LIST*)malloc(sizeof

11、(LIST);printf("輸入要插入的數(shù):");scanf("%d",&c);s->data=c;s->next='0'while(j!=i&&p!='0')p=p->next; j+;if(p='0')printf("輸入i的值不正確!n");else s->next=p->next; p->next=s;return h;LIST * DelLinkList(LIST *h,int i)LIST *p,*q;int j=

12、1;p=h;q=p->next; while(j!=i&&q!='0')p=q;q=q->next;j+;if(q='0')printf("輸入i的值不正確!n");else if(q->next='0')p->next='0'free(q);else p->next=q->next;free(q);return h;void LocLinkList(LIST *h,int i)LIST *p=h;int j=0,m=0;while(p->next!='0')if(p->data=i) printf("pos=%dn",j);m+;p=p->next;j+;if(m=0)printf("沒有這個(gè)數(shù)!n");void dispLinkList(LIST *h)LIST *p=h;if(p->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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論