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

下載本文檔

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

文檔簡介

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

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

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

4、便,在單鏈表中設頭結點,其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í)行不同的功能。要求首先輸入足夠多的插入元素,才可以進行其他的操作。每執(zhí)行一次功能,就會顯示執(zhí)行的結果(正確或錯誤)以及執(zhí)行后單鏈表的內(nèi)容。7測試結果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。返回沒有這個數(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)建一個單鏈表 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);/插入結點 dispLinkList(h);/輸出單鏈表 break;case 2:printf

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

10、*)malloc(sizeof(LIST);r=h;printf("請輸入一串數(shù)字(以0結束):");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("沒有這個數(shù)!n");void dispLinkList(LIST *h)LIST *p=h;if(p->n

溫馨提示

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

評論

0/150

提交評論