![[信息與通信]貴州大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)1-線性表及應(yīng)用_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/e53efe54-9d10-479e-b5d3-ca412f93c90c/e53efe54-9d10-479e-b5d3-ca412f93c90c1.gif)
![[信息與通信]貴州大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)1-線性表及應(yīng)用_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/e53efe54-9d10-479e-b5d3-ca412f93c90c/e53efe54-9d10-479e-b5d3-ca412f93c90c2.gif)
![[信息與通信]貴州大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)1-線性表及應(yīng)用_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/e53efe54-9d10-479e-b5d3-ca412f93c90c/e53efe54-9d10-479e-b5d3-ca412f93c90c3.gif)
![[信息與通信]貴州大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)1-線性表及應(yīng)用_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/e53efe54-9d10-479e-b5d3-ca412f93c90c/e53efe54-9d10-479e-b5d3-ca412f93c90c4.gif)
![[信息與通信]貴州大學(xué)數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)1-線性表及應(yīng)用_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/9/e53efe54-9d10-479e-b5d3-ca412f93c90c/e53efe54-9d10-479e-b5d3-ca412f93c90c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)一線性表及應(yīng)用一、實(shí)驗(yàn)?zāi)康? .復(fù)習(xí)C語言的上機(jī)環(huán)境,掌握C語言的基本結(jié)構(gòu)2 .會定義線性表的順序存儲結(jié)構(gòu)和鏈表的存儲結(jié)構(gòu)3 .熟悉對順序表的一些基本操作和具體的函數(shù)定義。4 .掌握順序表和單鏈表的存儲結(jié)構(gòu)及相關(guān)運(yùn)算5 .掌握順序表和單鏈表的基本應(yīng)用二、實(shí)驗(yàn)硬軟件環(huán)境硬件環(huán)境:賽揚(yáng)433以上CPU, 10GB以上硬盤,64MB以上內(nèi)存軟件環(huán)境:DOS+Turbo C 2.0 或 Borland C+ 3.1 以上Windowx 9X+VC+ 5.0 以上三、實(shí)驗(yàn)要求1 .認(rèn)真閱讀和掌握本實(shí)驗(yàn)內(nèi)容所給的全部程序。2 .保存和打印出程序運(yùn)行結(jié)果,并結(jié)合程序進(jìn)行分析。3 .按照你對順序表操作的需
2、要,屏幕考貝運(yùn)行結(jié)果到實(shí)驗(yàn)報(bào)告中。4 .撰寫實(shí)驗(yàn)報(bào)告并準(zhǔn)時上交四、注意事項(xiàng)在做第一次“數(shù)據(jù)結(jié)構(gòu)”課程實(shí)驗(yàn)之前,要在硬盤上建立好自己的 工作目錄, 專門用來存儲你所做的實(shí)驗(yàn)程序及相關(guān)信息,以后每次做實(shí)驗(yàn)都采用這個目錄。工作目錄建議如下建立,最后注明實(shí)驗(yàn)作者(張三):數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)(張三)|+-實(shí)驗(yàn)一|+-實(shí)驗(yàn)二|.+-實(shí)驗(yàn)九實(shí)驗(yàn)一至九的有關(guān)材料請同學(xué)在網(wǎng)上下載(下載網(wǎng)址:.crn),本實(shí)驗(yàn)設(shè)計(jì)完全由老師設(shè)計(jì),版權(quán)限本班同學(xué)使用,勿外傳。實(shí)驗(yàn)材料下載到本機(jī)后,請用winrar軟件釋放到你的電腦磁盤的“數(shù)據(jù)結(jié)構(gòu) 實(shí)驗(yàn)(張三)”文件夾中,形成如上圖的文件夾結(jié)構(gòu)。上交實(shí)驗(yàn)
3、報(bào)告時,請把“實(shí)驗(yàn)一”的所有內(nèi)容(含實(shí)驗(yàn)報(bào)告)用 winrar打包 成.rar文件后一并交上來。上傳名字為“實(shí)驗(yàn)一(張三).rar”五、基本理論線性表:線性表(linear list )是這樣的數(shù)據(jù)對象,其實(shí)例形式為:(el , e2, en ),其中n是有窮自然數(shù)。e是表中的元素,n是表的長度。元素 可以被視為原子,因?yàn)樗鼈儽旧淼慕Y(jié)構(gòu)與線性表的結(jié)構(gòu)無關(guān)。當(dāng) n = 0時,表為 空;當(dāng)n 0時,ei是第一個元素,en是最后一個元素,可以認(rèn)為e優(yōu)先于e2, e2優(yōu)先于e3,如此等等。除了這種優(yōu)先關(guān)系之外,在線性表中不再有其他的結(jié)構(gòu)。基本操作:?創(chuàng)建一個線性表。?確定線性表是否為空。?確定線性表的
4、長度。?查找第k個元素。?查找指定的元素。?刪除第k個元素。?在第k個元素之后/之前插入一個新元素。線性表ADT (圖1):抽象數(shù)據(jù)類型上也取此如(實(shí)例。成多卜元素的有序集合探作Clears 0:創(chuàng)建一個空線ft去Destroy ():刪除去七Eh里中0如果去為空則返阿任期返回血能5a 0:返回去的大?。慈ブ性貍€數(shù))用松(匕0:尋找去中第上個元素卜并把它保存到工中;如果不存在,則返回囿耀SWGTh (即返同元素K在表中的位置;如果工不在去中,則返網(wǎng)0D皿加代工):珊際去中第k個元素,并把它保存到式中、函數(shù)返同修改后的茂件去 加門依。在第個元素之后插入函數(shù)返PI修改后的線性去OiitVliT
5、 (OUt).雙線性去放入球出流。迎之中圖1線性表抽象數(shù)據(jù)類型順序表:采用數(shù)組來表示一個對象的實(shí)例,數(shù)組中的每個位置被稱之為單元( cell ) 或節(jié)點(diǎn)(node),每個數(shù)組單元應(yīng)該足夠大,以便能夠容納數(shù)據(jù)對象實(shí)例中的任 意一個元素。在某些情況下,每個實(shí)例可分別用一個獨(dú)立的數(shù)組來描述,而在其他情況下,可能要使用一個數(shù)組來描述幾個實(shí)例。實(shí)例中每個元素在數(shù)組中的位 置可以用一個數(shù)學(xué)公式來指明。假定使用一個數(shù)組來描述表,需要把表中的每個元素映射到數(shù)組的具體位置 上。第一個元素在什么地方?第二個元素在什么地方?在公式化描述中,可用一個數(shù)學(xué)公式來確定每個元素的位置。一個簡單的映射公式如下:locatio
6、n (i)= i - 1(式 1-1)式1-1表明第i個元素的存儲位置在數(shù)組的第i-1個位置;如果每個元素的長度為 m,則可以通過公式計(jì)算第i個元素的存儲地址:Address(i)=Address(1)+(i-1)*m (式 1-2)Address(1)為第1個元素的址,即數(shù)組的首地址。特別要記住的是第1個元素保存在數(shù)組的第0個位置。element (0 1 2 3 4,Maxsize-1I 5 I 2 : 4 | 8 |口二二| |length = 5a)element 0 I 2 3 4MaxSize-1I 51418 i n r -1 I length = 4b)圖2表性表實(shí)例簡而言之,
7、順序表就是把線性表的元素存儲在數(shù)組中,元素之間的關(guān)系直接 通過相鄰元素的位置來表達(dá)。優(yōu)點(diǎn):簡單,數(shù)據(jù)元素的提取速度快;缺點(diǎn):(1)靜態(tài)存儲,無法預(yù)知問題規(guī)模的大小,可能空間不足,或浪費(fèi)存 儲空間;(2)插入元素和刪除元素時間復(fù)雜度高一一O (n)鏈表:在存儲線性表List中的每個元素e時,同時存儲元素的下一個元素的首地址 (指針)Address(i+1),通過這種方法建立起元素之間的關(guān)系,從“邏輯”上看所 有元素構(gòu)成了圖3所示的“鏈”,所以稱為鏈表。first圖3 一個單鏈表從圖3可以看出元素之間的 鏈接關(guān)系,為了 “訪問”每個元素e的,必須知 道e的首地址,而這個首地址存儲在其“直接前驅(qū)”結(jié)
8、點(diǎn)ei-i中,按此規(guī) 律,可以回推到元素ei的首地址。即要訪問List中任一元素e,都必須從第一個 元素ei開始,所以,必須保存首元素 ei的地址在一個變量中first),有的書使用 Head作為變量名。圖3的單鏈表的首元素的地址在 巾rst中,我們可以直接用嚇irst” 稱呼此單鏈表。List中所有元素可以占用連續(xù)的存儲空間,也可以占用不連續(xù)的存儲空間。 但是從“邏輯”上來看所有元素仍然滿足“一對一”的關(guān)系,即:(1)首元素沒有“直接前驅(qū)”,尾元素沒有“直接后繼”。(2)中間元素有且僅有一個直接前驅(qū)”和“直接后繼為了實(shí)現(xiàn)這種存儲結(jié)構(gòu),可以使用 C語言作如下定義:typedef struct
9、Lnode DataType data;struct Lnode *next;/*遞歸定義,保存下一個元素的首地址 */LinkNode;關(guān)鍵字“typedef”的作用把結(jié)構(gòu)體類型定義成一種新的類型LinkNode,即鏈表中的一個結(jié)點(diǎn)類型(用以存儲一個數(shù)據(jù)元素,這樣可以定義一個結(jié)點(diǎn)變量存儲一個 數(shù)據(jù)元素:LinkNode a;也可定義一個“結(jié)點(diǎn)”指針保存某個結(jié)點(diǎn)的首地址:LinkNode *p;對于其它可能不支持動態(tài)存儲分配的高級語言來說,上述LinkNode類型定義 時就內(nèi)部就不能使用地址,但是我們可以利用數(shù)組“ 模擬”鏈表的功能,這種鏈 表可以這樣定義:typedef strut node
10、DataType data;int next;LinkNode;“指針”域用一個整型變量(next)來表示,用于存儲下一個元素位于數(shù)組中的“位置”,這樣定義的鏈表如圖4所示:data linknode10node(5 node24;圖4靜態(tài)鏈表鏈表還有“循環(huán)鏈表”(圖5)和“雙鏈表”(圖6),無論多么復(fù)雜的鏈表, 其基礎(chǔ)都是單鏈表,因此,完全掌握單鏈表后,學(xué)習(xí)其它有關(guān)鏈接存儲將會變得 簡單得多,這是本章我們的重點(diǎn)任務(wù)。循環(huán)單鏈表,實(shí)際上是利用鏈表的“尾結(jié)點(diǎn)”的空指針來指向鏈表的首結(jié)點(diǎn)。 有循環(huán)鏈表后,只要知道鏈表中任一結(jié)點(diǎn)的地址,就可以訪問鏈表中所所有結(jié)點(diǎn)。 注意圖5b引入了一 “頭結(jié)點(diǎn)”,目
11、的是讓空鏈表與非空鏈表統(tǒng)一,方便操作實(shí)現(xiàn)。圖5循環(huán)單鏈表雙鏈表是在單鏈表的基礎(chǔ)上,在數(shù)據(jù)元素中再增加一個 冗余項(xiàng),用以保存結(jié)點(diǎn) 的“直接前驅(qū)”結(jié)點(diǎn)的地址,這樣結(jié)點(diǎn)既可以指向“直接后繼”,也可以指向“直 接前驅(qū)”,實(shí)現(xiàn)鏈表的雙向查找。01:31 j4liIfLeftEndRight End圖6雙向鏈表鏈表最大的優(yōu)點(diǎn)是在某個元素之后插入結(jié)點(diǎn)或刪除結(jié)點(diǎn)非常方便,時間復(fù)雜度為常數(shù)O (1)。缺點(diǎn)是空間利用率低,存取指定元素效率低O (n)。六、實(shí)驗(yàn)內(nèi)容與過程本實(shí)驗(yàn)用到的文件有(在文件夾“實(shí)驗(yàn)一實(shí)驗(yàn)材料”中)Lineast.h、Lineast.cpp LineastTest.cpp、Link.h、Lin
12、k.cpp、LinkTest.cpp 前三個文件保存在 子目錄“SqList”中,后三個保存在 子目錄“Link”中 后綴有“Test”的文件用以測試順序表和鏈表的各項(xiàng)操作的正確性,里面包含了主函數(shù)“ main”。*h文件中包含了數(shù)據(jù)結(jié)構(gòu)的定義,對應(yīng)的同名 cpp文件包 含了對數(shù)據(jù)結(jié)構(gòu)進(jìn)行的各種操作的實(shí)現(xiàn)。請按以下提示完成所有實(shí)驗(yàn)。(一)文件Lineast.cpp是順序表的實(shí)現(xiàn),其中有三個函數(shù)沒有完全實(shí)現(xiàn),請 同學(xué)認(rèn)真閱讀整個程序,然后根據(jù)所學(xué)的知識完善,完善后編譯Lineast.cpp,然后運(yùn)行LineastText.CPP屏幕出現(xiàn)菜單:Lineast.CPP中需要補(bǔ)充的代碼如下:int I
13、nsertElem(SqList *L,int i, ElemType *e) /* 在第 i 個位置插入元素,插入成功 返回1*/int j;/*請?jiān)谝韵虏糠植迦氤绦虼a*/if(GetLength(L)=LINEASTMAXSIZE|iGetLength(L)+1|iLength+1;ji;j-)L-dataj=L-dataj-1;L-Length+;L-datai=*e;/*插入代碼結(jié)束*/return 1;int DeleteElem(SqList *L,int i) /*刪除第i個元素刪除成功返回1*/ int j;int n=GetLength(L);/*請?jiān)谝韵虏糠植迦氤绦虼a*
14、/if(n=0|in)printf(error);return 0; elsefor(j=i;jLength;j+)L-dataj=L-dataj+1;L-Length-;/*插入代碼結(jié)束*/return 1;,.int SearchElem(SqList *L,ElemType *e) /*查找元素*e 的位置 j,找到返回,失敗 返回-1 */int j;int n=GetLength(L);/*請?jiān)谙旅娌迦肽愕拇a*/j=GetLength(L)+1;for(int m=1;mdatam=*e)j=m;break;elsecontinue;/*插入代碼結(jié)束*/return jebugli
15、nk.EXFour List isIS 2039 4R 5。66?0 Hg1CreateList寺piny Lit3Delete 日 Eliainent4. Insc-rt & Ele-ncrnt5. Pisplav List 工心ngtii, Change 5/m七 Element uhIue7. Gc t i, st EIe non t Ualue8lC124即 第ur* Lit0-Exit ny pres gran?3Flcasc Enter a Hd of Elcnrenit vou waiinit to de leteT 1203040 St GM 70901.CrBateList2
16、.Display List3 Delete a ElsnentHI-Insert a Elcncnt5.Di&pgy Li&t length&,Cliang*; i* st Element!7.Get i. st Elsment Ualnol-xClcF ybur List0dExit; ny progfrant屏顯:(4)輸入3,回車后,根據(jù)屏幕提示輸入 3,回車C:UsersAdnni nistratorXOocumeritsWisual Studio 2Q10Projed:sJinkDebijgyiink.exe20 3B 40506070 SB 9011 .CieateList2 .D
17、i.splay List3 .Delete a Element4 - Ln-sert a Element 5Lit length G.Change i*st Elcnent value 7*Get 1Jst Element UaluB8-Clcflr your ListDm Exit ny pFOqHdZ 3Pleasb Enter a Ho of Elspent 叩u want to delstof 32030 SO 6070 S0 9S1 .CxatLi$t.2 .Display List3 .Dhlete a Element4 . Iner a Element5 .Display Lis
18、t lengftlib.Change i* at Elenent yaluc7 .Get 1Jst Element Ualue0-Clear yomr List0.Exit ny pr*口qiain1!屏顯:(5)輸入3,回車后,根據(jù)屏幕提示輸入 7,回車 CAU$er$AdmKi1a2iQoscrt a ElciracntP - Display List lencrtlkPaChange ist Element u&lup?BGe-t苣inuirtt U.ue .Clear- yowr List . Exit iray pyoiam!日,沖263050&070 B0.GreatsList L
19、iet .Dti lete a E le ne nt . I nisert a EJ*?PieFt .Display List longth ,Change ist Element ualite .Ge t厚上 EleiraEnt Udlue.Clear your List .Exit him program!屏顯:日白腫片口 m20305Q9769l-CreteLit. IB is play Lm土土:3 a Di- lete a Elene nt-nsc-rt a Element5 .Di”Id歲 List langth6 . Chanssie iJ t Elams nt value7a
20、Get i1* st Elene nt Ulue19 - ClediF yaur List j?xlt Fly piMiigr-a.ra?;;Please Enter a No of Elcncnt you -1典mintto de Ie t e!日臚X口 m2030581 一 C 爐e at 剪 LiiwE. display ListJ .11r:d Elcvirznt:4.1 nstrt a Elciment5.Display List lengtliB.Change iJ st Elameinit value 7,UeC i1st ElARant Ulue6 . Cl6diF 典uF L
21、lfitAl- Exit viiy piNigpani*7683口 一豐原因:此表是從1開始的,不存在-1(9)輸入4,回車后,根據(jù)屏幕提示輸入:35 3,回車 QUsef5AdministratorIDcumentsVisDal Studio 2010iPrajectslinkDebugl ink.exe70屏顯:1 . CaKia k e Li s t2 . DisulaiLj1 List3 -a Elene Fit.Inherit a Elcnont 5.Dplay Li鑿t length &. Changeat Element: v.aluc?sQet srt Elengnit Ual
22、ue H.Clear yom ListaExitmy pt*ogriamtEntet a Elennet value sndPo?it ion ljou Mill . DiSjpiliy L*t l&ng19-i .Change st Element v-alue ?aG&t ip st Elngnt Ualuei:.Clear your ListExit my pf&gramt(10)輸入4,回車后,根據(jù)屏幕提示輸入:10 1,回車C:U seEfiSAdiTiinistfateirXDaeu mentsViLjal Studio 201ffProjece二匚y:工2030355660 7B
23、 fifi1,CreateList W.Diwj)191y Li3t 3Delete a Elsment 4&In&eFt a Element 5.Display List length6 .Ch-dii-ijE iJ s t E ItfFwii t u-a Iue 7_e:七s t ElemE-n-fc Ualue8.Cltfir ynur List ny PTOgrami?4Plsase E mt er a iElennet value and Position 和 u uill Iniertt IB 1IS 2036355676 SBi .CrifJitBLis.t屏顯:2 1rDisp
24、lftv List 3-Delete q Element 4.neert a Element S -Di&pla9 Lis;t length EiCHang 包 iJ s t Elemnt ua Iue 7.Get iF St Elernn-nt Ualue 8.rClcr ynur List H.Exit: my pTOgram?(11)輸入4,回車后,根據(jù)屏幕提示輸入:5 0,回車屏顯:原因:插入元素必須為在1到L-length+1之間(12)輸入4,回車后,根據(jù)屏幕提示輸入:5 -1,回車屏顯:屏顯:(13)輸入4,回車后,根據(jù)屏幕提示輸入:90 9,回車輸入4,回車后,根據(jù)屏幕提示輸入
25、:95 10,回車原因:插入元素必須為在1到L-length+1之間 (13)屏顯:(14)輸入4,回車后,根據(jù)屏幕提示輸入:100 12,回車C:UsersAdm n istratorDocu mentsVisua I Studio 2OlOProjectslinklebLglinLex010口9 3560 7R 期自 90951 .GreateList2 .Display List3 a Elsment;471 iisg-r-t & ElbmKnlt5 .Pispla.y Li5C lengthG .Cliaihiye i* St Elen&nt krluE7 .Get ist Eleme
26、nt: Value84cLe/妙 you* List0-Exit nv prci gran?8Flease Enter a Elcmnct ualuic and Positian vnu will Jnsert? ISO 12 error10263550 ED 70 8BK12List及 Img i Element4-Insert a Element5,Display L工3t length6 .Chanige ia ct Ele nan t ualue7,Gct i* st ElLuFiicnt Ualuc8.ClBai* you洋 List屏顯: , Ex it my PE giF4n?原
27、因:插入元素必須為在1到L-length+1之間 (15)輸入5,回車屏顯:(16)UJWB12ferrr-10230355B1 .CreateListb .Pisplai/ List3 r&c Icte 飆 ElementM-t Inscr-t 0 Elementp -Display List length6 Charite i st Ele-nent value7 .Get st Element UbiIuic8 rClear i/our ListRhExiit ny p及。軻即品 mlELength of List is: 10709B95a rCrctcLi&tp _ DSp lay。
28、工f t3 lete a Elementk. Insert a ElementrDi&pljii/ List length6,Change ip st EleHenl: value7_Get i* st Element UailueS .Clear- ycrnjii* ListM.EmIt ny program?C;UsFs,,MAdminis-tratcir&c?cijment5Vi5ual Studio 2010Proiedtsl inkDebuglinkiexiB輸入6,回車后,根據(jù)屏幕提入示輸入:70 4,回車licng-th of List 土S 10屏顯:Enter a Eleme
29、nt value and pasit ion you hrill Cliftngc J my progrsmTy口uir Listmy ppijg單tSiml8 - C le ar H.Exit i6Please :70 41. CreateLi&t .Display List;3.De Lete a ELencmt4.insert a El&ncnt E.Display List length6 .Change iBst Elenent value7 - Get ip st Element Ualuciel.Oeat eList2 .Display List3 .De Let& a Elen
30、ent Insei4t a Elenent5 . Display List lengt!ifc . Chftngfc i* st Elencnt value7 .Gtit i-st fl&nenit Value8 Lisi;(17)輸入6,回車后,根據(jù)屏幕提入示輸入:5 0,回車7WStudio 201 iJrcjectshnDcbLigXIinkira(19)輸入6,回車后,根據(jù)屏幕提入示輸入:110 11,回車10 ZM 3U 7H5 修6 修 70 SU?Sh. .Crc ante Listb -Displaiij List b.Dcl&tE ii Elcmcitt4.nscrt a E
31、lcncnt 5i笈口 1地y List length 6,Change i* St Elenent value b,Get ipst Elcmriit U蠹lue HlClear* you1k List REm It my pHnainl 匕Pleaise Enter a Element ualue! and position 9011 will Changef p 0IB 203070 SB ED 7080?095p .Cieiat EiListp Dis play Listpl .DeLota a Elementk. 1 nsBrt a ELmntp -Display List 工心n斗
32、 1thfc .ClhansfE i毋七 El&n&nt vain已r?.Gct i# st Element Ualuc,Clear iKiur Li5t屏顯:M.Exit my pi*Dgi產(chǎn)ee1!原因:(18)對表操作必須在 1到L-length輸入6,回車后,根據(jù)屏幕提入示輸入:100 9,回車屏顯:5 B9095102B1070506。70國01 = CreateList2 B DisplA LiEt3 . De lete a Eleiterit4 .LnseiM a Elenent8 . Displai List lemsTth6 . Changiost Element walue
33、?-Gfet ijlst Elencnt Uaiueg . Clear your Lizt0.Exit ny progranJPIcasc Enter a Elenent ualucandpos it ion youwillChange!1 (e i100 91020307050&B 700180951 . CreafccLi.st2 . Display Lit3 = Delete a Elcnent-Tflsert a 1匕m尊蛇t5BDisplay List leMthB B Change 1B st Eleirinit ualue7.Giet 1*st Elenent lllalueS
34、B Cleai* yuuF List0 , Exit ny prog pan!inistratorDocum e ntVieual Studio iOlOXPrajectsXlinDebugJirik.e:原因修改元素后并為對 L-length進(jìn)彳+ +(20)輸入7,回車后,根據(jù)屏幕提入示輸入:6,回車屏顯:(21)輸入7,回車后,根據(jù)屏幕提入示輸入:0,回車屏顯:1 .CpeateLlst1 .CreateList1nept a Elenent2.1H鐘lay liit 3vDelete a Elenent 4.nscrt 昌 Elcnent 5,Display List length G
35、.Change ifst Element value 7.Get i* st Elcmnt Ualwe 8 . Clear your List M.Exit my pr-ogran!Get st Element value.Disulajj List3 , DeIcte a Element4.Jn&ert a ElenBntS - Diplajyi Lisrt length b.Chdinge lst ElenenC value 7 .Get i.r st Elencnt Ualue b-Clea* ynur List 出 Exit e* pagpan!1Please Enter a Elem
36、ent vaLuc 由nd it ion you will Change! 110 11后* List lengthG .Change i* st Elene nt value7-Gct st ElenErnt Ualuc8Cleai* jiour List H.Escit e* progsianJPlease Entep i1.CreatcList2.Display List3.Delete d Elciwnt4. nsert a Elcmnt!Displai/ List lengtlh& .Change i* st ElenKmt ualu.e V.Get i*st Eleognt Ual
37、ue8-CleaF 9口uf List 0_Ex:it em pDpan*U蒯9 1W 2U3 970i SO bH 708 99SIS 2B 3B k,CreateList12.Display List P DeletB a Elen&nt1 .CieateLisI:Q,List3 De lets 由 ElenntH*nsert a Elenent5 .Display List lengthf.Change i* st Element ualug7 .Get iJst Element Ualuc8 . Clear yuiur Listny progirrtfiT7Get i/st Eleme
38、nt value Please Enter 1:1 .CreateLi&t2 .Di&play List3 .Delete a Element4 -nsert a Element5 .Display Llt length6 .Charte i st EIgm腔nt7 .Get i*st Element8 .C1wl your List B.Exit m* program!B data(0 J=-l屏顯:原因數(shù)組是從1開始的(22)輸入7,回車后,根據(jù)屏幕提入示輸入:10,回車CfSUsersvAdmi nistratoDoc uit cntVis u 1口 X1 .CreatEList2 .D
39、isplay ListB.Delete a Elzment4-Insert a El啟meet5List length& diansre L* st Elenent value7&Get i1st ELbment ValueB.Clear our ListB- Exit ny progfram?7Get i,st Elcnent valueFlease Entei* 1- i Gl119riata101=y51CreateList2 .Display Li&t3 let a Elenient4 - Insert a Element5 .Display List lengthG .CliaiiE
40、 1? st Elcpicrkt yaluc7-Get ist Elenient ValueS.CleAr your ListB.Exit my program! 原因:第10號元素存在,并且為 95(23)輸入8,回車1 .CreateLit空三 Display List:3 . De lete a Elemenit4 .Insert a Element5 .Dsplmy List length6 . Cangb i 3 Create Licit B Di&plav List De Lctc a Element 4. nsert a. Element .Display List Itn卬1t
41、hb. Ghangie i - st Elene mt value7,Get V st Element ValueS,Clear your ListH Exit my progpanT1 st ElemBrit value7B Get iJ st ElenKiot Ualue8.Clear your Li隼tB.Exit my programJ8Hgu, iou List lias no e leiniEMit f f 1.CreateListZ.Display List3. De lete a E lente nt4.1 insert a Element5 4 Display List le
42、nyth6 .Change ist Elenent ualue7 .Get i1st Element Value8 .Clear 9our Lit屏顯:9 . Ex it my piqa gvani f(24)輸入2,回車Hoy you list has no c Icneint ? ?1.CreateList2,Display List3,Delete a Elenent4 insert a Element4.Di臂pl事y Ligt length6 Chainsfe st Elenent yalue7-Get iJ st Element Ualus8 . Clear your ListYu
43、u臚 List is Lineast is Emptj/?T!屏顯:原因:L-length 被清 0進(jìn)一步思考并回答:(1)步驟1、2分別用來干什么?答:初始化一個順序表(2)步驟2-8用來干什么?其中步驟5-8有什么用?答:2到8是用來刪除一個元素,5到8是用來驗(yàn)證當(dāng)刪除條件不滿足時是否能 執(zhí)行刪除。(3)步驟9-14用來干什么?其中11、12、13、14的目的是什么?答:9到14是用來加入一個元素,11到14是用來驗(yàn)證當(dāng)插入條件不滿足時是否 能進(jìn)行插入。(4)步驟16-19作用是什么?答:是用來改變一個表內(nèi)元素的值。(5)步驟20-21作用是什么?答:是用來驗(yàn)證當(dāng)改變條件不滿足時,是否能改
44、變一個表內(nèi)元素的值。(二)單鏈表的操作實(shí)現(xiàn)放在Link.CPP中,其中有幾個函數(shù)未完成(如下),請 同學(xué)們認(rèn)真這個文件中的所有操作的實(shí)現(xiàn),在適當(dāng)?shù)牡胤窖a(bǔ)充完成本實(shí)驗(yàn):LKList FindElem(LKList *L,int i) /*查找第i個元素的操作,近到返回元素地址, 找不到返回空*/LKList p=*L;int j=0;/*以下補(bǔ)充代碼*/if(*L=NULL) return NULL;int n=GetLength(L);if(in)return NULL;if(i=1) return p;for(j=0;jnext;elsebreak;/*代碼補(bǔ)充結(jié)束*/ return p;int InsertElem(LKList *L,int i, ElemType *e)/*在第 i 個位置插入元素 */LKList p=FindElem(L,i-1);LNode *s;/*構(gòu)造待插入的結(jié)點(diǎn)*/s=(LNode*)malloc(sizeof(LNode);s-data=*e;s-next=NULL;/*以下補(bǔ)充代碼*/if (i=1) s-next=*L;*L=s;return 1;if
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 碘化鈉在消毒劑中的應(yīng)用考核試卷
- 煤炭行業(yè)的科技創(chuàng)新與行業(yè)智能化考核試卷
- 木材加工過程中的生產(chǎn)組織考核試卷
- 木制容器生產(chǎn)過程信息化考核試卷
- 罐裝水生產(chǎn)過程中的品質(zhì)保障措施考核試卷
- 科學(xué)控糖與健康體重管理
- 中學(xué)生五愛教育主題班會
- 高中生生涯規(guī)劃教育指導(dǎo)
- 2025企業(yè)股權(quán)轉(zhuǎn)讓合同
- 學(xué)前教育大學(xué)生職業(yè)生涯規(guī)劃
- Unit 4 Protecting our heritage sites 課文語篇填空-牛津譯林版高中英語選擇性必修第三冊
- GB/T 16955-1997聲學(xué)農(nóng)林拖拉機(jī)和機(jī)械操作者位置處噪聲的測量簡易法
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 鐵碳合金的相圖解讀
- 2023年復(fù)旦大學(xué)博士研究生入學(xué)考試專家推薦信模板
- 中小學(xué)教師資格證面試課件講義
- 全國初中英語優(yōu)質(zhì)課大賽一等獎《八年級Unit 6An old man》說課課件
- 湖北地區(qū)醫(yī)院詳細(xì)名單一覽表
- 麥肯錫入職培訓(xùn)第一課:讓職場新人一生受用的邏輯思考力新員工培訓(xùn)教材
- 金屬壓鑄機(jī)的plc控制
評論
0/150
提交評論