算法與數(shù)據(jù)結(jié)構(gòu)(C語言描述)實驗指導書_第1頁
算法與數(shù)據(jù)結(jié)構(gòu)(C語言描述)實驗指導書_第2頁
算法與數(shù)據(jù)結(jié)構(gòu)(C語言描述)實驗指導書_第3頁
算法與數(shù)據(jù)結(jié)構(gòu)(C語言描述)實驗指導書_第4頁
算法與數(shù)據(jù)結(jié)構(gòu)(C語言描述)實驗指導書_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)實驗指導書計算機科學與工程學院目 錄實驗一、熟悉實驗環(huán)境和單向鏈表.3實驗二、多項式運算.14實驗三、順序棧的編寫.17實驗四、棧的使用括號匹配.18實驗五、循環(huán)隊列.19實驗六、二叉排序樹.20實驗七、圖.21實驗八、排序.22實驗九、查找.23實驗一 熟悉實驗環(huán)境和單向鏈表一、實驗目的熟悉VC 6 實驗環(huán)境掌握單鏈表的理論,并能根據(jù)需要編寫相應的代碼二、實驗內(nèi)容1、VC 6編寫控制臺c程序指南和代碼編寫的一些規(guī)范使用VC開發(fā)c語言程序,首先要熟悉VC的IDE環(huán)境。IDE(Integrated Development Environment),即集成開發(fā)環(huán)境。編譯器廠家將程序編輯器、

2、編譯程序、連接程序和調(diào)試程序集成在一個開發(fā)環(huán)境中,使得這個開發(fā)環(huán)境能完成所有的開發(fā)工作,這就是IDE。當啟動VC后,就可以看到它所提供的IDE環(huán)境。如何在VC環(huán)境中用c語言編程,開發(fā)控制臺應用程序。主要的步驟分為:1.新建項目2.添加文件到新建的項目中3.編寫代碼4.編譯鏈接生成可執(zhí)行文件其中,代碼的調(diào)試也是一個很重要的過程。(一)、新建工程圖1注意,在圖1中一定要選擇Win32 Console Application,這樣才能編寫控制臺應用程序。在圖1的中的Project name下面的文本框填寫自己工程的名字,在Location中選擇工程要存放的硬盤。填好后,點擊OK,進入下一步。圖2在圖

3、2中,默認選擇An empty project,保持默認選項,點擊Finish。 就建立了一個空白的控制臺工程項目。以后可以往這個空白的項目中添加現(xiàn)有文件(已經(jīng)編寫好的.c或者.h文件),或者是添加新的空白文件(已經(jīng)編寫好的.c或者.h文件),用于在其上編寫自己的代碼。二、往工程中添加文件應注意,剛選擇的是新建一個空白的工程,因此,新建的工程中沒有任何.c或者.h文件 ,現(xiàn)在需要往工程中添加代碼文件。在工程已建立的情況下,有兩種方法往工程項目中添加代碼,一種是添加空白的.c文件和.h文件,然后自己在這些空白的文件中編寫代碼,另一種是添加現(xiàn)有的.c文件和.h文件。若要把添加到工程中的.c或者.h

4、文件從工程中刪除,只需要在workspace中選中相應的文件,按下鍵盤上的delete鍵,就可以了。不過,注意,此時文件僅僅是被從工程中移除了,還在硬盤中存在,如果要徹底將文件刪除,需要在硬盤上文件保存的地方進行刪除。1.添加空白的.c文件和.h文件選擇File菜單項中的New(1)添加.c文件的方法如下:圖3在圖3的左邊選擇C+ Source File,右邊給這個文件取名,這里取名為Demo.c。需要注意的是后綴一定要為.c,如果不填寫,則默認為.cpp類型的文件。(雖然有人說c是c+的子集,但是,二者還是有些區(qū)別的,當編譯器把c程序認為是c+程序的話,會有些問題。)填寫后,點擊OK按鈕 。

5、(2)添加.h文件的方法如下:圖4圖4中,選擇C/C+ Header File,跟上面一樣,可以添加頭文件。2.添加現(xiàn)存的.c文件和.h文件需要在哪個文件夾下添加文件,直接在那個文件夾上點擊右鍵,如圖選擇,就可以在隨后彈出的對話框中選擇相應的文件了。三、VC的IDE界面的簡單介紹下面簡單的介紹一下,VC的IDE界面圖5如圖5所示,VC的IDE界面和傳統(tǒng)的Windows程序一樣,包含有菜單條、工具條和狀態(tài)條。除了這些,主界面共分為三大部分,分別是Workspace窗口、工作區(qū)和輸出窗口。其中,Workspace窗口在圖5的左半部分,包括FileView頁面和ClassView頁面,若是編寫c程序

6、,只涉及到FileView頁面。在FileView頁面中,對加入工程中的文件(包括.h和.c文件)進行了組織,分為3個文件夾,其中,Source Files中存放的是.c文件,Header Files中存放的是.h文件,Resource Files中存放的是資源文件,而這在現(xiàn)在簡單的c程序編寫中不會涉及到(若是使用win32 API,編寫windows程序,會涉及到),因此跟我們相關的只有兩個文件夾,Source Files文件夾和Header Files文件夾,這兩個文件夾對源文件做了很好的組織。如果你愿意或者說是為了滿足編程的需要,也可以在其中新建新的文件夾,管理你的代碼文件。工作區(qū),在窗

7、口的右邊,在其中能打開多個代碼頁面,可以方便的對代碼進行編輯修改。輸出窗口在窗口的下部,這個窗口在對程序進行編譯鏈接或者進行調(diào)試的時候會出現(xiàn),顯示一些信息。四、編譯鏈接運行程序?qū)帉懞玫某绦蜻M行編譯鏈接,可以使用菜單項中的Build菜單,也可以使用工具條中的工具。Build菜單是VC提供的輔助編程的主要菜單,用于對項目進行編譯,連接并生成可執(zhí)行文件。其中幾個子菜單簡單介紹如下:Compile:編譯當前激活的源文件或頭文件Build:編譯并鏈接當前激活的項目配置Rebuild All:對當前激活的項目配置先Clean,再BuildSet Active Configuration:設置哪個項目配置

8、被激活(其中,默認的是生成Debug版本)工具條如下:其中,第一個圖標是Compile,第二個圖標是Build,第三個是stop build,第四個是執(zhí)行程序(如果新修改好的程序沒有編譯和鏈接的話,會有提示,先對程序重新編譯鏈接,再執(zhí)行),第五個是調(diào)試,第六個是設置或移除斷點。五、調(diào)試程序調(diào)試程序很重要,有很多方法,比如,可以用printf語句輸出中間結(jié)果進行調(diào)試。VC 6中集成了調(diào)試器,可以用vc 6的調(diào)試器設置斷點,進行調(diào)試,觀察中間結(jié)果信息。主要快捷鍵的解釋如下:F9:設置斷點F5:調(diào)試運行F10:單步執(zhí)行,遇到函數(shù)不進入函數(shù)內(nèi)部F11:單步執(zhí)行,遇到函數(shù)進入函數(shù)內(nèi)部Shift+F11:

9、跳出函數(shù)熟練運行快捷鍵,在調(diào)試時會感覺很方便 。在調(diào)試過程中會有各種窗口,對中間值進行觀察,便于進行程序的調(diào)試; 同時也會有一個調(diào)試的工具欄,如果沒有出現(xiàn)調(diào)試工具欄,則可以用如下方法調(diào)出 :另外,注意一點,最好調(diào)試結(jié)果是輸出窗口中顯示的信息中警告也為0個,因為編譯器在編譯程序的時候,有時檢查得不是會很準確的或者說也跟設置的警告的級別有關系,有些警告,在運行的時候就可能會產(chǎn)生問題。因此,最好是編寫的程序在編譯鏈接的時候顯示的錯誤和警告都是0個。附錄:代碼編寫的一些規(guī)范1. 使用頭文件每個c+/c程序通常分為兩個文件。一個文件用于保存程序的聲明(declaration),稱為頭文件。另一個用于保存

10、程序的實現(xiàn)(implementation),稱為定義(definition)文件。頭文件中只存放“聲明”而不存放“定義”。要學會使用頭文件,不要把所有的代碼都編寫到一個.c文件中,雖然在程序短小的時候,這樣做也許也是一個不錯的選擇,但是,當程序的規(guī)模稍微大些的時候,應該學會使用頭文件,并且不要把所有的代碼都集中到一個.c文件中。使用頭文件的原因或作用如下:(1)通過頭文件來調(diào)用庫功能。在很多場合,源代碼不便或不準向用戶公布,只要向用戶提供頭文件和二進制的庫即可。用戶只需要按照頭文件中的接口聲明來調(diào)用庫功能,而不必關心接口怎么實現(xiàn)。編譯器會從庫中提取相應的代碼。(2)頭文件能加強類型安全檢查。如

11、果某個接口被實現(xiàn)或被使用時,其方式與頭文件中的聲明不一致,編譯器就會指出錯誤,這一簡單的規(guī)則能大大減輕程序員調(diào)試、改錯的負擔。在頭文件中,為了防止頭文件被重復引用,應當用ifndef/define/endif結(jié)構(gòu)產(chǎn)生預處理塊。用 #include 格式來引用標準庫的頭文件(編譯器將從標準庫目錄開始搜索)。用 #include “filename.h” 格式來引用非標準庫的頭文件(編譯器將從用戶的工作目錄開始搜索)。一個頭文件結(jié)構(gòu)的例子如下:頭文件結(jié)構(gòu)( graphics.h )#ifndefGRAPHICS_H/ 防止graphics.h被重復引用#defineGRAPHICS_H /其中GR

12、APHICS_H為預編譯器常量#include / 引用標準庫的頭文件#include “myheader.h” / 引用非標準庫的頭文件void Function1();/ 全局函數(shù)聲明struct Box / 結(jié)構(gòu)聲明;#endif 2.程序的版式(可讀性)代碼編寫出來是給人看的,而不是給機器看的。編寫具有良好的可讀性的代碼,寫上比較好的注釋,這樣方便自己以后的修改調(diào)試,也方便別人的閱讀。有良好的可讀性的代碼,需要在代碼中有適當空行。代碼編寫過程中,成對編碼原則,也就是說,左右括號是一一對應的,寫完左邊的括號,最好馬上寫右邊的括號,然后再在兩個括號中間填寫代碼。另外,內(nèi)存的分配和釋放也都要

13、注意是成對出現(xiàn)的(這里還沒有涉及到)。添加適當?shù)淖⑨?,比如函?shù)接口說明,重要的代碼段,主要的算法等等。但是,注釋不可以過多。在VC 6中,快速將混亂的代碼轉(zhuǎn)換成整齊的代碼的方法:選中需要格式化的代碼段,然后按下AltF8(或者選擇Edit | Advanced | Format Selection)3.統(tǒng)一的命名規(guī)則編寫程序的時候要注意有一個統(tǒng)一的命名規(guī)則。比如,變量和參數(shù)用小寫字母開頭的單詞組合而成;常量全用大寫的字母,用下劃線分割單詞;靜態(tài)變量加前綴s_(表示static);如果不得已需要全局變量,則使全局變量加前綴g_(表示global)等等。給函數(shù),變量命名的時候,需要起有意義的名字。

14、單向鏈表結(jié)點的插入和刪除下面有一個單向鏈表的部分代碼,實現(xiàn)的功能為:按任意順序輸入幾個整數(shù),構(gòu)造一個排序的線性表,線性表中的元素是降序排列的。主要函數(shù)有3個插入結(jié)點:通過插入結(jié)點的方式構(gòu)造降序排列的鏈表打印鏈表:遍歷鏈表中的元素,將其打印出來刪除結(jié)點:根據(jù)用戶需要刪除鏈表中的結(jié)點其中,插入結(jié)點函數(shù),主函數(shù)給出,需要補充完整刪除結(jié)點和打印鏈表函數(shù),能實現(xiàn)刪除鏈表中結(jié)點的功能。注意:(1)這里的鏈式存儲結(jié)構(gòu)的線性表中,頭結(jié)點head也是分配了空間的(2)如果全部的代碼自己能編寫出來,更好(自己編寫代碼的時候,可以給頭指針不分配結(jié)點空間,僅僅是一個指針)編寫鏈式存儲結(jié)構(gòu)的線性表時候需要注意下面幾點:

15、(1)鏈表的每個節(jié)點都要分配空間(2)編寫單向鏈表的時候,一定有一個頭結(jié)點,而因為有這個頭指針,根據(jù)是否為頭指針分配一個實在的結(jié)點空間,有兩種方法實現(xiàn)后續(xù)的鏈表結(jié)點的插入刪除遍歷等操作。相對來說,給頭指針分配一個實實在在的結(jié)點空間(這樣這個結(jié)點的數(shù)據(jù)區(qū)域會被浪費)的做法利于后續(xù)的結(jié)點插入和刪除操作的實現(xiàn)。下面為部分代碼,可以復制到VC環(huán)境中讀懂后,編寫刪除鏈表結(jié)點的函數(shù):linckList.c/*降序鏈表的插入,刪除,打印*/#include #include struct tagNodeint data;struct tagNode *pNext;typedef struct tagNode

16、* pNode;/將結(jié)點插入到鏈表的適當位置,這是一個降序排列的鏈表/void insertList(pNode head,/鏈表頭結(jié)點 pNode pnode)/要插入的結(jié)點pNode pPri=head;while (pPri-pNext!=NULL)if (pPri-pNext-datadata)pnode-pNext=pPri-pNext;pPri-pNext=pnode;break;pPri=pPri-pNext;if (pPri-pNext=NULL)/如果要插入的結(jié)點最小pPri-pNext=pnode;/輸出鏈表void printLinkedList(pNode head)p

17、Node temp=head-pNext;while (temp!=NULL)printf(%d ,temp-data);temp=temp-pNext;/從鏈表中刪除結(jié)點void delformList(pNode head,int data)pNode temp=head-pNext;pNode pPri=head;while (temp!=NULL)if (temp-data=data)pPri-pNext=temp-pNext;free(temp);break;pPri=temp;temp=temp-pNext;void main()pNode head=(pNode)malloc(s

18、izeof(struct tagNode);/給頭指針分配空間pNode pTemp=NULL;int temp;head-pNext=NULL;/比較好的習慣就是分配好空間,馬上賦值printf(請輸入要放入鏈表中的數(shù)據(jù),以-1結(jié)尾:);/讀入數(shù)據(jù),以-1結(jié)尾,把數(shù)據(jù)插入鏈表中scanf(%d,&temp);while (temp!=-1)pTemp=(pNode)malloc(sizeof(struct tagNode);pTemp-data=temp;pTemp-pNext=NULL;insertList(head,pTemp);scanf(%d,&temp);printf(降序排列的鏈

19、表為:n);printLinkedList(head);printf(n);/下面的代碼當刪除函數(shù)編寫成功后,可以取消注釋,讓其執(zhí)行,主要是調(diào)用函數(shù)實現(xiàn)鏈表結(jié)點的刪除/printf(請輸入要刪除數(shù),以-1結(jié)尾:);/scanf(%d,&temp);/while (temp!=-1)/delformList(head,temp);/scanf(%d,&temp);/printf(刪除節(jié)點后,鏈表中剩余數(shù)據(jù)為:);/printLinkedList(head);/printf(n);實驗二 多項式運算一、實驗目的1、需要從簡單的一個文件的C程序中轉(zhuǎn)變過來,知道一個程序的哪些部分要放到.c文件中,哪些

20、部分放到.h文件中,能清晰的組織多個文件進行編譯鏈接,即學會多文件項目的組織2、初步掌握在VC環(huán)境中進行代碼的調(diào)試3、掌握一元稀疏多項式的鏈式存儲結(jié)構(gòu)及其加法、減法運算的實現(xiàn),進一步熟悉鏈表的插入、刪除操作二、實驗內(nèi)容問題描述:設計一個一元稀疏多項式簡單的加減法計算器實現(xiàn)要求:一元稀疏多項式簡單計算器的基本功能是:(1)輸入并建立多項式:;(2)輸出多項式(3)多項式A和B相加,建立多項式CAB,并輸出相加的結(jié)果多項式C(4)多項式A和B相減,建立多項式CAB,并輸出相加的結(jié)果多項式D方法說明:(1)多項式的輸入與存儲用帶表頭結(jié)點的單鏈表存儲多項式,鏈表中的每個節(jié)點分別存儲多項式各項的系數(shù)和指

21、數(shù),即每從鍵盤輸入多項式的一對數(shù)(系數(shù),指數(shù)),可對應建立鏈表的一個結(jié)點。每個節(jié)點的結(jié)構(gòu)為:Coef exp next建立兩個鏈表,其中pa和pb分別為它們的頭指針:9 8 3 17 0 4 -1Pa-9 2 8 13 -1pb結(jié)果鏈表Pa(或者是Pc)Pc-9 29 8 11 17 0 7 -1(2)多項式數(shù)據(jù)類型的定義struct tagNodefloat coef;int exp;struct tagNode *next;typedef struct tagNode Node;typedef struct tagNode* pNode;(3)主要算法創(chuàng)建兩個鏈表,分別存放多項式1和多項式

22、2,這兩個鏈表中的節(jié)點是按指數(shù)降序或者升序排列的多項式相加或相減,下面給出多項式相加的部分實現(xiàn)/*下面的函數(shù)實現(xiàn)兩個多項式的相加,要相加的鏈表分別由pa和pb指向(其中,pa,pb都是分配了空間的頭結(jié)點)。相加的結(jié)果直接由pa指向的鏈表保存,即使在pa鏈表中添加或刪除(當系數(shù)因為相加為0的情況下)一些結(jié)點,構(gòu)成結(jié)果。這里要相加的鏈表中指數(shù)都是按從小到大的順序排列好了的,是升序鏈表。*/void add_poly(Node *pa,Node *pb)Node *p=pa-pNext;/鏈表1,將來的結(jié)果也放在此Node *q=pb-pNext;/鏈表2Node *pre=pa;Node *u;/

23、臨時用float x;while (p!=NULL & q!=NULL)/當兩個鏈表都不為空if (p-expexp)/比較鏈表1跟鏈表2當前節(jié)點的指數(shù)大小,鏈表1也是存放結(jié)果的地方pre=p;p=p-pNext;/p指向要比較的下一個結(jié)點。pre指向的是結(jié)果鏈表的最后一個結(jié)點。else if (p-exp=q-exp)/假如鏈表1和鏈表2的指數(shù)相等,就要系數(shù)相加x=p-coef+q-coef;if (x!=0)/相加后的系數(shù)不為0,有必要保留一個結(jié)點就可以了p-coef=x;pre=p;else/如果相加后,系數(shù)不是0,不需要保留任何一個結(jié)點,在這里刪除鏈表1的結(jié)點,下面刪除鏈表2的結(jié)點pr

24、e-pNext=p-pNext;/保持鏈表1的連續(xù)性free(p);p=pre-pNext;/p指向要比較的下一個結(jié)點/下面的代碼是進行鏈表2結(jié)點的刪除工作,因為指數(shù)相等,僅僅需要保留一個結(jié)點就可以了/而結(jié)果直接保存在鏈表1中,所以,刪除鏈表2的結(jié)點。u=q;q=q-pNext;free(u);else/如果鏈表2的當前節(jié)點指數(shù)小,那么要把鏈表2的當前節(jié)點加入到結(jié)果鏈表中(即是鏈表1)/相當于把結(jié)點插入到鏈表1中,用u作為臨時變量,保存鏈表2的下一個當前節(jié)點的位置。u=q-pNext;q-pNext=p;pre-pNext=q;pre=q;q=u;if (q)/如果鏈表2比鏈表1長,那么需要把

25、鏈表2多余的部分加入結(jié)果鏈表中。鏈表1比鏈表2長,則什么都不用做。pre-pNext=q;free(pb);輸出結(jié)果多項式實驗三 順序棧的編寫一、實驗目的掌握順序棧的編寫和實現(xiàn),并能用自己實現(xiàn)的棧實現(xiàn)相應的算法二、實驗內(nèi)容1. 自己實現(xiàn)一個順序棧(棧的成員函數(shù)至少必須包括壓棧出棧取棧頂元素判斷棧是否為空)2. 編寫程序,實現(xiàn)功能為:輸入5個整數(shù),然后將這些整數(shù)按與輸入時相反的順序輸出。注意: (1)棧的結(jié)構(gòu)為typedef struct tagMyStackint arrayMAX_NUM;/棧int stackNum;/棧里面的元素個數(shù)myStack;(2)程序編寫的時候,在參數(shù)傳遞的時候要

26、注意,如果改變了輸入?yún)?shù)的值,那么要用指針實驗四 棧的使用括號匹配一、實驗目的通過一個小程序,掌握和了解棧的使用二、實驗內(nèi)容從鍵盤上輸入一算術表達式檢驗該算術表達式中括號是否配對提示:(1)配對的算術表達式中左右括號的數(shù)目應相等例如:表達式(a+b)和a+b)中的括號不配對(2)對的算術表達式中每一個括號都一定有一個右括號與之匹配例如:表達式)a+b(+c和(b+a)+(c+d也屬于不配對的情況算法提示:括號配對檢查的原則是:對表達式從左向右掃描。當遇到左括號時,左括號入棧;而遇到右括號時,首先將棧中的棧頂元素彈出棧,再比較彈出元素是否與右括號匹配,如果兩者匹配,則操作繼續(xù);否則,檢查出錯,打

27、印“no”,并停止操作。當表達式全部掃描完后,如果棧為空,說明括號作用層次嵌套正確,打印“yes”,并停止操作。方式是先創(chuàng)建一個存放左括號的空棧,并將“#”作為棧底元素。順序掃描表達式,當遇到非括號時,繼續(xù)掃描,遇到“(”時,進棧,而遇到“)”時,與棧等元素比較,如果括號匹配,棧頂元素退棧,繼續(xù)掃描表達式,否則,報錯退出。這個算法實現(xiàn)中,棧的部分可以直接使用上次實驗中自己編寫好的棧。不過,如果使用順序棧,要明白,順序棧中的元素個數(shù)是有限的。而且要注意,如果使用的話,需要把棧里面存放數(shù)據(jù)的類型修改為字符型實驗五 循環(huán)隊列一、實驗目的掌握循環(huán)隊列的編寫和實現(xiàn),并能用自己實現(xiàn)的隊列實現(xiàn)相應的算法二、

28、實驗內(nèi)容1. 自己實現(xiàn)一個循環(huán)隊列(隊列的成員函數(shù)至少必須包括進隊列出隊列取隊首元素值判斷隊列是否為空)2. 編寫程序,應用隊列實現(xiàn)下述題目描述功能(下面包括題目的描述和說明):設有兩個隊列A和B,隊列A中按次序存放五個大寫字母,分別為A,B,C,D,E;隊列B中按次序存放五個小寫字母,分別為a,b,c,d,e。要求每次都從A隊列隊頭取出一個元素,從B隊列隊頭取出一個元素,并列輸出這取出的兩個元素,直到兩個隊列為空為止。使得最后輸出為:Aa Bb Cc Dd Ee注意: (1)隊列的結(jié)構(gòu)為#define MAX_NUM 10typedef struct tagMyQueuechar array

29、MAX_NUM;/隊列/這里通過浪費一個空間,來區(qū)別隊列空還是滿/當front=rear時,隊列空int front;/約定頭指針指示隊列頭元素的前一個位置,注意這是一個約定,如果你想做別的約定也可以int rear;/約定尾指針指示隊尾元素在隊列中的當前位置myQueue;(2)程序編寫的時候,在參數(shù)傳遞的時候要注意,如果改變了輸入?yún)?shù)的值,那么要用指針 實驗六 二叉排序樹一、實驗目的通過一種二叉樹構(gòu)建算法的實現(xiàn),對二叉樹有更深的了解二、實驗內(nèi)容(1)構(gòu)建一個二叉排序樹(中序遍歷的時候會輸出排序結(jié)果),樹中結(jié)點數(shù)據(jù)取自數(shù)組a10。a10=8,3,6,1,5,2,9,7,4,0(2)分別用三種

30、遍歷方法輸出遍歷結(jié)果。(3)鍵盤輸入一個值x,要求在生成好的二叉排序樹中查找這個值x,如果找到,則輸出“找到了”,沒有找到,則輸出“沒有找到”實驗七 圖一、實驗目的熟悉圖的遍歷操作二、實驗內(nèi)容采用鄰接矩陣作為存儲結(jié)構(gòu),完成無向圖的深度和廣度優(yōu)先遍歷具體的實驗代碼包括(1) 讀入圖,保存為鄰接矩陣的形式,為了方便,可以直接讀入一個矩陣,也可以讓用戶輸入兩條相連的邊,或者讀入相鄰的兩個結(jié)點(2) 實現(xiàn)深度和廣度優(yōu)先遍歷的算法(3) 輸出深度和廣度優(yōu)先遍歷的結(jié)果實驗八 排序一、實驗目的掌握一種排序算法二、實驗內(nèi)容設一單向鏈表的頭指針為head,鏈表的記錄中包含著整數(shù)類型的key域,試設計算法,將此鏈表的記錄按照key遞增的次序進行排序。要求:(1)可以使用自己熟悉的一種排序方法進行排序(2)要實現(xiàn)完整的程序,包括輸入輸出在排序的時候,你可以通過修改鏈表指針改變結(jié)點的位置,也可以直接對其上的元素進行排序?qū)嶒灳?查找一、實驗目的掌握折半查找算法二、實驗內(nèi)容設一數(shù)組,存放有10個排好順序

溫馨提示

  • 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

提交評論