驗證2:線性表子系統(tǒng)_第1頁
驗證2:線性表子系統(tǒng)_第2頁
驗證2:線性表子系統(tǒng)_第3頁
驗證2:線性表子系統(tǒng)_第4頁
驗證2:線性表子系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1實驗內(nèi)容或題目(1) 用結(jié)構(gòu)體描述一個字符型的單向鏈表。(2) 創(chuàng)建線性表;在線性表中插入元素、刪除元素;顯示線性表中所有元素的基本操作。(3) 用if語句設(shè)計一個選擇式菜單。線性表子系統(tǒng)*1建表*2插入*3刪除*4顯示*5查找*6求表長*0返回*2、實驗?zāi)康呐c要求(1) 掌握線性表的特點;(2) 掌握線性表順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)的基本運算;(3) 掌握線性表的創(chuàng)建,插入,刪除和顯示線性表中元素的基本操作。3、實驗步驟與源程序?qū)嶒灢襟E首先構(gòu)建出各個函數(shù)在主調(diào)函數(shù)main()函數(shù)中的作用以及返回值:CreatList()函數(shù)是用來建立線性表,In sList()函數(shù)用來插入結(jié)點元素,Del

2、List()函數(shù)用來刪除結(jié)點元素,ShowList()函數(shù)用來顯示線性表,SearchList()函數(shù)用來查找線性表元素,主函數(shù)main()用于菜單界面,方便操作。之后便是具體實現(xiàn)每個函數(shù)功能的細節(jié)。程序編好后經(jīng)過不斷地差錯改錯,最后得到正確的源程序。程序源代碼#in clude<>#in clude<>typedef struct linknodechar data;struct linknode *n ext;li nno de;linnode *head;int n;void CreateList()linnode *p,*s;int乙charx;n=0;z=1;

3、head=(li nnode *)malloc(sizeof(li nno de);p=head;printf("ntt請逐個輸入節(jié)點,以x'為結(jié)束標記!n");prin tf("n ”);while(z)prin tf("tt輸入一個字符數(shù)據(jù),并按回車: ");scan f("%c", &x);getchar();if(x!='x')s=(l innode *)malloc(sizeof(li nno de);n+;s->data=x;p_>n ext=s;s-> next

4、=NULL;p=s;else z=0;void In sList(i nt i,char x)linnode *s,*p;int j;p=head;j=10;while(p!=NULL&&j<i)j+;p=p->n ext;if(p!=NULL)s=(l innode *)malloc(sizeof(li nno de);s->data=x;s->n ext=p->n ext;p_>n ext=s;n+;n");else prin tf("ntt線性表為空或插入位置超出!void DelList(char x)linnod

5、e *p,*q;if(head=NULL)prin tf("ntt鏈表下溢!”);return;if(head-> next=NULL)prin tf("ntt線性表已為空!”);return;q=head;p=head->n ext;while(p!=NULL&&p->data!=x)q=p;p=p->n ext;if(p!=NULL)q_>n ext=p->n ext;free(p);n-;printf("ntt結(jié)點 c已經(jīng)被刪除!",x);else prin tf("ntt抱歉!沒有找到

6、您要刪除的結(jié)點。");void ShowList()linnode *p=head;prin tf("ntt顯示線性表的所有元素:”);if(head-> next=NULL|p=NULL)prin tf("ntt鏈表為空! ”);elseprin tf("ntt");while(p-> next!=NULL)prin tf("%5c",p-> next->data);p=p->n ext;void SearchList(char x)linnode *p;int i=1;if(head=NUL

7、L)prin tf("ntt鏈表下溢!”);return;if(head-> next=NULL)prin tf("ntt線性表為空,沒有任何節(jié)點!”);return;p=head->n ext;while(p!=NULL&&p->data!=x)p=p->n ext;i+;if(p!=NULL)”,i,x);printf("ntt在表的第d位上找到值為。的結(jié)點!elseprin tf("ntt抱歉!未找到值為。的結(jié)點! ",x);void mai n()int choice,i,j;char x;hea

8、d=NULL;j=1;while(j) prin tf("n");prin tf("ntt線性表子系統(tǒng)");printf("ntt*");prin tf("ntt*1建表*"prin tf("ntt*2插入*"prin tf("ntt*3刪除*"prin tf("ntt*4顯示*"prin tf("ntt*5查找*"prin tf("ntt*6求表長*"prin tf("ntt*0返回*"prin

9、 tf("ntt*);prin tf("ntt請選擇菜單號(0-6 ):");sea nf("%d",&choice);getchar();if(choice=1)CreateList();elseif(choice=2)i,x):"); printf("ntt請輸入插入的位置i和插入的數(shù)據(jù)(輸入格式:scan f("%d,%c",&i,& x);In sList(i,x);elseif(choice=3) prin tf("ntt請輸入要刪除的數(shù)值:");sc

10、an f("%c", &x);DelList(x);elseif(choice=4)if(head=NULL)prin tf("ntt請先建立線性表!");elseShowList();else if(choice=5) prin tf("ntt請輸入要查找的兀素:");scan f("%c", &x);SearchList(x); elseif(choice=6)prin tf("ntt線性表長度為:%d", n);else if(choice=0) j=0;elseprin

11、tf("ntt輸入錯誤!請重新輸入!");4、測試數(shù)據(jù)與實驗結(jié)果圖一建立一個線性表圖二線性表數(shù)據(jù)的插入圖三線性表數(shù)據(jù)的刪除圖四線性表數(shù)據(jù)的查找圖五求表長圖六返回5、結(jié)果分析與實驗體會在學(xué)過本節(jié)有關(guān)線性表的兩種存儲結(jié)構(gòu)的基礎(chǔ)操作后,做這個驗證性的實驗的焦 點便在于驗證各種操作的正確與否,在對照書上的線性表基本運算的實現(xiàn)的算法 思路和注意事項,結(jié)合老師上課強調(diào)的每種算法的注意重點,找出了原始程序的 幾個主要的錯誤點:1某些地方運用了 C+語言而不是C,如:每個函數(shù)在為申請一塊LinkNode類型的 存儲單元的操作,并將其地址復(fù)制給變量時:p=new LinkNode;而在C環(huán)境中應(yīng)為: p=( LinkList *)mallo

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論