1實驗-順序表順序存儲

1實驗-順序表順序存儲

ID:42465756

大小:48.50 KB

頁數(shù):7頁

時間:2019-09-15

1實驗-順序表順序存儲_第1頁
1實驗-順序表順序存儲_第2頁
1實驗-順序表順序存儲_第3頁
1實驗-順序表順序存儲_第4頁
1實驗-順序表順序存儲_第5頁
資源描述:

《1實驗-順序表順序存儲》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。

1、實驗一線性表(順序結(jié)構(gòu))—、實驗目的1.掌握實現(xiàn)線性表的基本操作方法;2.掌握線性表的基本操作:建表、插入、刪除、輸出等運算在順序存儲結(jié)構(gòu)的實現(xiàn);3.通過本次實習加深對高級語言C語言的使用(特別是函數(shù)參數(shù)、指針類型、鏈表的使用)。熟悉線性表的棊木運算在兩種存儲結(jié)構(gòu)(順序結(jié)構(gòu)和鏈式結(jié)構(gòu))上的實現(xiàn)。二、實驗內(nèi)容線性表的基本操作:建表、插入、刪除、輸出等運算在順序存儲結(jié)構(gòu)的實現(xiàn);三、實驗代碼/咅00:基本信息定義*/#include"stdio.h"#include"malloc.h"#defineSUCCESS1#defineFAILURE0#dcfinc

2、null0#definemaxsize100typedefintdatatype;typedefstruct/*定義線性表(順序結(jié)構(gòu))數(shù)據(jù)類型*/{datatypedatafmaxsize];intlast;[sequenlist;intn;/*定義功能選擇菜單函數(shù)引voidprint(){piintf(”???■線性表(順序結(jié)構(gòu))的基本操作???An”);printf(H開始“);)/*打印線性表(順序結(jié)構(gòu))*/voidprintout(sequenlist*L){inti;for(i=1;i<=L->last;i++)printfC'[%d]”

3、,i);printf(Hn);for(i=l;i<=L->last;i++)printf(u%6du,L->data[i]);printf(Hn);/*01線性表(順序結(jié)構(gòu))的初始化*/intlnitList(sequenlist*L){L=(scqucnlist*)malloc(sizeof(sequenlist));if(!L){returnFAILURE;elseL->last=-1;returnSUCCESS;/*02創(chuàng)建線性表(順序結(jié)構(gòu))*/voidcreatlist(sequenlist*L){inti;inttmp;printfC

4、1請輸入線性表中數(shù)據(jù)的個數(shù):”);scanf(”%d",&n);for(i=1;i<=n;i++){printf("data[%dj=",i);fflush(stdin);/*清除掉鍵盤緩沖區(qū)*/scanf("%d”,&tmp);L->data[i]=tmp;}L->last=n;}/*03在第i個結(jié)點前插入元素x(note:元素從1始計數(shù))*/intinscrt(scqucnlist*L,datatypex,inti){intj;訐(L->last==maxsize)/*如果原線性表(順序結(jié)構(gòu))己經(jīng)滿了*/{printf(”線性表(順序結(jié)構(gòu))已滿

5、“);return0;}elseif((i

6、

7、(i>L->last+1))/*如果輸入的i值超岀范圍引{printfC*錯了,請輸入正確的丫值“);return0;else{for(j=L->last;j>=i;j-)/*從笫i個元素起,每個元素后移一位*/L->data[j+l]=L->data[jJ;L->data[i]=x;L->last=L->last+1;}return(l);}/*04刪除第i個結(jié)點,note:元素從0始計數(shù)*/intdellist(sequenlist*L,inti){if((i

8、

9、(i>L->last))

10、/*如果輸入的i值超出范圍*/{printf(“錯了,請輸入正確的丫值”);return0;}else{for(;ilast;i++)/*從第i+1個元素起,每個元素前移一位*/L->data[i]=L->data[i+1J;L?>last=L?>last?1;rcturn(l);}}/*05求線性表(順序結(jié)構(gòu))的長度勺intCountList(sequenlist*L){returnL->last;}/*06清空線性表(順序結(jié)構(gòu))*/voidClearList(sequenlist*L){L->last=-1;}/*07判斷線性表(順序結(jié)

11、構(gòu))是否為空引/*boolListIsEmpty(sequenlist*L){returnL->last==-1;}*//*08按位直取線性表(順序結(jié)構(gòu))屮元索*/datatypeGetElem(sequenlist*L,intpos){if((L->last==-1)

12、

13、(pos<1)

14、

15、(pos>L->last))/*表為空或者位置不對*/{printf(n線性表為空,或者輸入的位置有錯!”);returnFAILURE;returnL->data[pos];/咅09按值查找的定位函數(shù)犁intLocateList(sequenlist*L,data

16、typevalue){inti=0;if(L->last==-1)/*表為空*/{printf

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。