2023年數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏(4篇)_第1頁(yè)
2023年數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏(4篇)_第2頁(yè)
2023年數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏(4篇)_第3頁(yè)
2023年數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏(4篇)_第4頁(yè)
2023年數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏(4篇)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——2023年數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏(4篇)在日常學(xué)習(xí)、工作或生活中,大家總少不了接觸作文或者范文吧,通過(guò)文章可以把我們那些零零散散的思想,聚集在一塊。范文書(shū)寫(xiě)有哪些要求呢?我們?cè)鯓硬拍軐?xiě)好一篇范文呢?這里我整理了一些優(yōu)秀的范文,希望對(duì)大家有所幫助,下面我們就來(lái)了解一下吧。

key)f-lchild=p;數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏篇四

試驗(yàn):線性表的基本操作

學(xué)習(xí)把握線性表的順序存儲(chǔ)結(jié)構(gòu)、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的設(shè)計(jì)與操作。對(duì)順序表建立、插入、刪除的基本操作,對(duì)單鏈表建立、插入、刪除的基本操作算法。

1.順序表的實(shí)踐

1)建立4個(gè)元素的順序表s=sqlist[]={1,2,3,4,5},實(shí)現(xiàn)順序表建立的基本操作。

2)在sqlist[]={1,2,3,4,5}的元素4和5之間插入一個(gè)元素9,實(shí)現(xiàn)順序表插入的基本操作。

3)在sqlist[]={1,2,3,4,9,5}中刪除指定位置(i=5)上的元素9,實(shí)現(xiàn)順序表的刪除的基本操作。2.單鏈表的實(shí)踐

3.1)建立一個(gè)包括頭結(jié)點(diǎn)和4個(gè)結(jié)點(diǎn)的(5,4,2,1)的單鏈表,實(shí)現(xiàn)單鏈表建立的基本操作。

2)將該單鏈表的所有元素顯示出來(lái)。

3)在已建好的單鏈表中的指定位置(i=3)插入一個(gè)結(jié)點(diǎn)3,實(shí)現(xiàn)單鏈表插入的基本操作。

4)在一個(gè)包括頭結(jié)點(diǎn)和5個(gè)結(jié)點(diǎn)的(5,4,3,2,1)的單鏈表的指定位置(如i=2)刪除一個(gè)結(jié)點(diǎn),實(shí)現(xiàn)單鏈表刪除的基本操作。5)實(shí)現(xiàn)單鏈表的求表長(zhǎng)操作。

1.開(kāi)啟vc++。

2.建立工程:點(diǎn)file-new,選project標(biāo)簽,在列表中選win32consoleapplication,再在右邊的框里為工程起好名字,選好路徑,點(diǎn)ok-finish。至此工程建立完畢。

3.創(chuàng)立源文件或頭文件:點(diǎn)file-new,選file標(biāo)簽,在列表里選c++sourcefile。給文件起好名字,選好路徑,點(diǎn)ok。至此一個(gè)源文件就被添加到了你剛創(chuàng)立的工程之中。

4.寫(xiě)好代碼

5.編譯->鏈接->調(diào)試

線性是我們學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)中,碰見(jiàn)的第一個(gè)數(shù)據(jù)結(jié)構(gòu)。學(xué)習(xí)線性表的重點(diǎn)把握順序表和單鏈表的各種算法和時(shí)間性能分析。線性表右兩種存儲(chǔ)方式即順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。通過(guò)學(xué)習(xí)我知道了對(duì)線性表進(jìn)行建立、插入、刪除,同時(shí)單鏈表也是進(jìn)行建立、插入、刪除。而對(duì)于順序表的插入刪除運(yùn)算,其平均時(shí)間繁雜度均為0(n).通過(guò)這次的學(xué)習(xí),把握的太熟練,主要是課本上的知識(shí)點(diǎn)沒(méi)有完全的理解,回去我會(huì)多看書(shū),理解重要的概念??傊@次試驗(yàn)我找到了自己的不足之處,以后會(huì)努力的。

試驗(yàn)二:棧的表示與實(shí)現(xiàn)及棧的應(yīng)用

(1)把握棧的順序存儲(chǔ)結(jié)構(gòu)及其基本操作的實(shí)現(xiàn)。(2)把握棧后進(jìn)先出的特點(diǎn),并利用其特性在解決實(shí)際問(wèn)題中的應(yīng)用。(3)把握用遞歸算法來(lái)解決一些問(wèn)題。

1.編寫(xiě)程序,對(duì)于輸入的任意一個(gè)非負(fù)十進(jìn)制整數(shù),輸出與其等值的八進(jìn)制數(shù)。

2.編寫(xiě)遞歸程序,實(shí)現(xiàn)n!的求解。3.編寫(xiě)遞歸程序,實(shí)現(xiàn)以下函數(shù)的求解。

n,n0,1fib(n)fib(n1)fib(n2),n1

4.編寫(xiě)程序,實(shí)現(xiàn)hanoi塔問(wèn)題。1.開(kāi)啟vc++。

2.建立工程:點(diǎn)file-new,選project標(biāo)簽,在列表中選win32consoleapplication,再在右邊的框里為工程起好名字,選好路徑,點(diǎn)ok-finish。至此工程建立完畢。

3.創(chuàng)立源文件或頭文件:點(diǎn)file-new,選file標(biāo)簽,在列表里選c++sourcefile。給文件起好名字,選好路徑,點(diǎn)ok。至此一個(gè)源文件就被添加到了你剛創(chuàng)立的工程之中。

4.寫(xiě)好代碼

5.編譯->鏈接->調(diào)試

通過(guò)這次的學(xué)習(xí)我把握了棧這種抽象數(shù)據(jù)類型的特點(diǎn),并能在相應(yīng)的應(yīng)用任務(wù)中正確選用它;總的來(lái)說(shuō),棧是操作受限的線性表,是限定僅在表尾進(jìn)行插入或刪除操作的線性表。因此,對(duì)棧來(lái)說(shuō),表尾端有其特別含義,稱為棧頂(top),相應(yīng)地,表頭端稱為棧底(botton);棧又稱為后進(jìn)先出(lastinfirstout)的線性表,簡(jiǎn)稱lifo結(jié)構(gòu),由于它的修改是按后進(jìn)先出的原則進(jìn)行的。

加上這個(gè)試驗(yàn),我已經(jīng)學(xué)了線性表(順序表,單鏈表)和棧,知道它們都是線性表,而且對(duì)以后的學(xué)習(xí)有很大的作用,可以說(shuō)這是學(xué)習(xí)以后知識(shí)的總要基礎(chǔ)。

試驗(yàn)三:二叉樹(shù)的建立及遍歷

(1)把握利用先序序列建立二叉樹(shù)的二叉鏈表的過(guò)程。(2)把握二叉樹(shù)的先序、中序和后序遍歷算法。

1.編寫(xiě)程序,實(shí)現(xiàn)二叉樹(shù)的建立,并實(shí)現(xiàn)先序、中序和后序遍歷。如:輸入先序序列abc###de###,則建立如下圖所示的二叉樹(shù)。

并顯示其先序序列為:abcde中序序列為:cbaed后序序列為:cbeda1.開(kāi)啟vc++。

2.建立工程:點(diǎn)file-new,選project標(biāo)簽,在列表中選win32consoleapplication,再在右邊的框里為工程起好名字,選好路徑,點(diǎn)ok-finish。至此工程建立完畢。

3.創(chuàng)立源文件或頭文件:點(diǎn)file-new,選file標(biāo)簽,在列表里選c++sourcefile。給文件起好名字,選好路徑,點(diǎn)ok。至此一個(gè)源文件就被添加到了你剛創(chuàng)立的工程之中。

4.寫(xiě)好代碼

5.編譯->鏈接->調(diào)試

這次試驗(yàn)是關(guān)于二叉樹(shù)的常見(jiàn)操作,主要是二叉樹(shù)的建立和遍歷,在這次試驗(yàn)中我按先序方式建立二叉樹(shù)的,而遍歷方式則相對(duì)要多一些,有遞歸的先序、中序、后序遍歷,和非遞歸的先序、中序、后序遍歷,此外還有層次遍歷.二叉樹(shù)高度和葉子個(gè)數(shù)的計(jì)算和遍歷相差不大,只是加些判斷條件,總體來(lái)說(shuō),本次試驗(yàn)不太好做,期間出現(xiàn)了好多規(guī)律錯(cuò)誤,變量初始化的問(wèn)題等,不過(guò)經(jīng)過(guò)細(xì)心排查最終都一一解決了。

試驗(yàn)四:查找與排序

(1)把握折半查找算法的實(shí)現(xiàn)。(2)把握冒泡排序算法的實(shí)現(xiàn)。

1.編寫(xiě)折半查找程序,對(duì)以下數(shù)據(jù)查找37所在的位置。5,13,19,21,37,56,64,75,80,88,922.編寫(xiě)冒泡排序程序,對(duì)以下數(shù)據(jù)進(jìn)行排序。49,38,65,97,76,13,27,491.開(kāi)啟vc++。

2.建立工程:點(diǎn)file-new,選project標(biāo)簽,在列表中選win32consoleapplication,再在右邊的框里為工程起好名字,選好路徑,點(diǎn)ok-finish。至此工程建立完畢。

3.創(chuàng)立源文件或頭文件:點(diǎn)file-new,選file標(biāo)簽,在列表里選c++sourcefile。給文件起好名字,選好路徑,點(diǎn)ok。至此一個(gè)源文件就被添加到了你剛創(chuàng)立的工程之中。

4.寫(xiě)好代碼

5.編譯->鏈接->調(diào)試

(1)查找算法的代碼如下所示:#include“stdio.h〞#include“malloc.h〞#defineoverflow-1#defineok1#definemaxnum100#definen10typedefintelemtype;typedefintstatus;typedefstruct{

elemtype*elem;

intlength;}sstable;statusinitlist(sstablest){inti,n;

=

(elemtype*)

malloc(elemtype));

if(!)return(overflow);

printf(“輸入元素個(gè)數(shù)和各元素的值:〞);

scanf(“%dn〞,n);

for(i=1;i=n;i++){

(maxnum*sizeof

scanf(“%d〞,[i]);}

=n;

returnok;}intseq_search(sstablest,elemtypekey){

inti;

[0]=key;

for(i=;[i]!=key;--i);

returni;}intbinarysearch(sstablest,elemtypekey){

intmid,low,high,i=1;

low=1;

high=;

while(low=high)

{

mid=(low+high)/2;

if([mid]==key)

returnmid;

elseif(keyhigh=mid-1;

else

}

return0;}voidmain(){sstablest;initlist(st);

elemtypekey;intn;printf(“key=〞);

scanf(“%d〞,key);

printf(“nn〞);

/*printf(“afterseqsearch::〞);

n=seq_search(st,key);

printf(“positionisin%dnn〞,n);*/

printf(“afterbinarysearch::〞);

n=binarysearch(st,key);

low=mid+1;if(n)printf(“positionisin%dnn〞,n);else

}試驗(yàn)結(jié)果如下所示:

(2)排序算法的代碼如下所示:#include“stdio.h〞#include“malloc.h〞#defineoverflow-1#defineok1#definemaxnum100#definen10typedefintelemtype;typedefintstatus;typedefstruct{

elemtype*elem;

intlength;}sstable;statusinitlist(sstablest)printf(“notinnn〞);{inti,n;

(elemtype));

if(!)return(overflow);

printf(“輸入元素個(gè)數(shù)和各元素的值:〞);

scanf(“%dn〞,n);

for(i=1;i=n;i++){

scanf(“%d〞,[i]);}

=n;

returnok;}voidsort(sstablest){

inti,j,t;

for(i=1;ifor(j=i+1;j=;j++)

if([i][j]){t=[i];=

(elemtype*)

malloc

(maxnum*sizeof

}

}[i]=[j];[j]=t;voiddisplay(sstablest){inti;

for(i=1;i=;i++){

printf(“%d

〞,[i]);}

}voidmain(){

sstablest;initlist(st);intn;printf(“beforesort::n〞);display(st);sort(st);printf(“naftersort::n〞);display(st);}試驗(yàn)結(jié)果如下所示:

通過(guò)這次試驗(yàn),我明白了程序里的折半查找和冒泡查找.其實(shí)排序可以有好多種,但是其目的應(yīng)當(dāng)都是為了能夠在海量的數(shù)據(jù)里迅速查找到你要的數(shù)據(jù)信息,折半查找是種比較快的方式,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論