版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 本科生課程設計論文</b></p><p> 題 目:C++課程設計</p><p> -------圖的遍歷</p><p><b> 課程設計任務書</b></p><p><b> 一、前言</b></p><
2、;p> 1.1課程設計的目的與意義………………………………………………4</p><p> 1.2對課程設計功能的需求分析…………………………………………4</p><p> 二、算法思想…………………………………………………………………5</p><p> 三、數(shù)據(jù)結構…………………………………………………………………5</p><
3、;p> 四、模塊劃分…………………………………………………………………6</p><p> node* creategraph()//建立鄰接表,完成無向圖的輸入</p><p> void DepthFirstSearch(node *list)//深度優(yōu)先搜索</p><p> void BreadthFirstSearth(node *list)
4、//廣度優(yōu)先搜索</p><p> void PathSearth(node *list)//路徑搜索</p><p> void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p> AdjacencyListDelete(list);//釋放鄰接表空間</p><p><b>
5、; 五、系統(tǒng)的概要設計</b></p><p> 1、系統(tǒng)功能模塊圖…………………………………………………………9</p><p> 六、源程序……………………………………………………………………10</p><p> 七、程序的調試分析以及測試結果</p><p> 1、程序的調試測試結果………………………………………
6、…………………20</p><p><b> 八、附錄</b></p><p><b> 1、附錄一</b></p><p> 心得……………………………………………………………………………21</p><p> 2、參考文獻…………………………………………………………………22</p
7、><p><b> 一、前言</b></p><p> 1.1課程設計的目的與意義</p><p> 上學期我們對《數(shù)據(jù)結構》這門課程進行了學習。這門課程是一門實踐性非常強的課程,為了讓大家更好地理解與運用所學知識,提高動手能力,我們進行了此次課程設計實習。這次課程設計不但要求我們掌握《數(shù)據(jù)結構》中的各方面知識,還要求我們具備一定的C++語言
8、基礎和編程能力。</p><p> 通過實踐我們掌握《數(shù)據(jù)結構》中的知識。對于《圖的遍歷》這一課題來說,所要求我們掌握的數(shù)據(jù)結構知識主要有:圖的存儲結構、隊列的基本運算實現(xiàn)、圖的深度優(yōu)先遍歷算法實現(xiàn)、圖的廣度優(yōu)先遍歷算法實現(xiàn)。</p><p> 對于我們學生來講,此次課程設計是為了讓我們訓練自己的實際設計能力,通過設計實踐,去真正獲得此項目管理和團隊協(xié)作等方面的基本訓練和工作經驗。&l
9、t;/p><p> 通過課程設計的一系列訓練,我們能提高如何綜合運用所學知識解決實際問題的能力,以及獲得此項目管理和團隊協(xié)作等等眾多方面的具體經驗,增強對相關課程具體內容的理解和掌握能力,培養(yǎng)對整體課程知識綜合運用和融會貫通能力。</p><p> 1.2對課程設計功能的需求分析</p><p> 圖的遍歷并不需要是一個過于復雜的工作環(huán)境,一般來說:最合適的才是最
10、好的。軟件設計必須符合我們使用實際情況的需要。根據(jù)要求,圖的遍歷主要功能如下: 1、用戶可以隨時建立一個有向圖或無向圖;</p><p> 2、用戶可以根據(jù)自己的需要,對圖進行深度遍歷或廣度遍歷;</p><p> 3、用戶可以根據(jù)自己的需要對圖進行修改;</p><p> 4、在整個程序中,用戶可以不斷的按照不同的方式對圖進行遍歷,若不繼續(xù),用戶也可
11、以隨時跳出程序,同時,如果用戶輸入的序號錯誤,程序會提示用戶重新輸入序號;</p><p><b> 二、算法思想</b></p><p> 本課題本人所采用的是鄰接表的方式存儲圖,實現(xiàn)圖的深度、廣度兩種遍歷,并將每種遍歷結果輸出來。并且能尋找路徑。2.1.1圖的鄰接矩陣的建立 對任意給定的圖(頂點數(shù)和邊數(shù)自定),,根據(jù)鄰接表的存儲結構建立圖的鄰接表。
12、2.1.2 圖的遍歷的實現(xiàn) 鄰接表是圖的一種鏈式存儲結構,在鄰接表中,對圖中的每一個頂點建立一個單鏈表,通常以順序結構存儲,以便隨機訪問任意一頂點。</p><p> 圖的深度遍歷,假設初始狀態(tài)是圖中所有頂點都未曾被訪問,則深度優(yōu)先遍歷可從圖中的某個頂點v出發(fā),訪問此頂點,依次從v的未被訪問的鄰接點出發(fā)深度優(yōu)先遍歷圖,直至圖中和v有路徑想通的頂點都被訪問到;若此時圖中尚有未被訪問的節(jié)點,則另選圖中一
13、個未被訪問的頂點做起始點,直至所有節(jié)點都被訪問。</p><p> 圖的廣度優(yōu)先遍歷,是以v為起始點,由近及遠,依次訪問和v有路徑相通且路徑長度為1、2、…的頂點。</p><p><b> 三、數(shù)據(jù)結構</b></p><p> #define t true</p><p> #define f false&l
14、t;/p><p> #include<iostream.h></p><p> struct node//定義一個結構作為節(jié)點類型</p><p><b> {</b></p><p><b> int data;</b></p><p> bool sig
15、n;//標志位,用來標示是否遍歷過</p><p> node *next;</p><p><b> };</b></p><p><b> 四、模塊劃分</b></p><p> node* creategraph()//建立鄰接表,完成無向圖的輸入</p><p&g
16、t;<b> };</b></p><p> 表4.1鄰接表的建立</p><p> void DepthFirstSearch(node *list)//深度優(yōu)先搜索</p><p><b> 真</b></p><p> 非零 零</p><p
17、> 圖4.2 深度優(yōu)先遍歷流程圖</p><p> void BreadthFirstSearth(node *list)//廣度優(yōu)先搜索</p><p> 真 </p><p> 表4.3圖的廣度遍歷</p><p> void PathSearth(node *list)//路徑搜索</
18、p><p> void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p> AdjacencyListDelete(list);//釋放鄰接表空間</p><p><b> 五、系統(tǒng)的概要設計</b></p><p> main() /*包含一些調用和控制語句*/&
19、lt;/p><p> 圖5.1系統(tǒng)功能模塊圖</p><p><b> 六、部分源程序</b></p><p> #define t true</p><p> #define f false</p><p> #include<iostream.h></p>&l
20、t;p> struct node//定義一個結構作為節(jié)點類型</p><p><b> {</b></p><p><b> int data;</b></p><p> bool sign;//標志位,用來標示是否遍歷過</p><p> node *next;</p>
21、<p><b> };</b></p><p> node* creategraph()//建立鄰接表,完成無向圖的輸入</p><p><b> {</b></p><p> int l,m,n;</p><p><b> bool g;</b><
22、;/p><p> cout<<"請輸入節(jié)點數(shù): ";</p><p><b> cin>>n;</b></p><p> node *adjacencylist=new node[n+1];//動態(tài)分配節(jié)點數(shù)組內存</p><p> adjacencylist[0].dat
23、a=n;//0地址存放的為節(jié)點數(shù)</p><p> adjacencylist[0].next=NULL;</p><p> for(int i=1;i<=n;i++)//給各頂點域賦初值</p><p><b> {</b></p><p> adjacencylist[i].data=0;</p&
24、gt;<p> adjacencylist[i].next=NULL;</p><p> adjacencylist[i].sign=f;//表示未遍歷 </p><p><b> }</b></p><p> cout<<"請依次輸入各條邊的始點和尾點:(以0表示結束)"<<
25、;endl;</p><p><b> cin>>l;</b></p><p> if(l!=0)//判斷輸入邊是否結束</p><p><b> g=t;</b></p><p> while(g==t)</p><p><b> {<
26、/b></p><p><b> cin>>m;</b></p><p> if((l>0)&&(l<=n)&&(m>0)&&(m<=n))//判斷輸入頂點是否正確</p><p><b> {</b></p>&
27、lt;p> node *p,*q,*top;</p><p> p=(node *)new(node);//分配邊的一個頂點內存</p><p> p->data=m;</p><p> p->next=NULL;</p><p> if(adjacencylist[l].next==NULL)//為每個節(jié)點創(chuàng)建鄰
28、接鏈表</p><p> adjacencylist[l].next=p;</p><p><b> else</b></p><p><b> {</b></p><p> top=adjacencylist[l].next;</p><p> while(top
29、->next!=NULL)</p><p> top=top->next;</p><p> top->next=p;</p><p><b> }</b></p><p> adjacencylist[l].data++;//統(tǒng)計鄰接點的個數(shù)</p><p> q=(
30、node *)new(node);//分配邊的另一個頂點內存</p><p> q->data=l;</p><p> q->next=NULL;</p><p> if(adjacencylist[m].next==NULL)//構建鄰接表</p><p> adjacencylist[m].next=q;</p&
31、gt;<p><b> else</b></p><p><b> {</b></p><p> top=adjacencylist[m].next;</p><p> while(top->next!=NULL)</p><p> top=top->next;&
32、lt;/p><p> top->next=q;</p><p><b> }</b></p><p> adjacencylist[m].data++;//統(tǒng)計鄰接點的個數(shù)</p><p><b> }</b></p><p><b> else<
33、/b></p><p> cout<<"邊"<<l<<"--"<<m<<"輸入錯誤!"<<endl;//錯誤輸入標識</p><p><b> cin>>l;</b></p><p> if
34、(l==0)//邊的輸入結束</p><p><b> g=f;</b></p><p><b> }</b></p><p> return adjacencylist;//返回鄰接表</p><p><b> };</b></p><p>
35、 void DepthFirstSearch(node *list)//深度優(yōu)先搜索</p><p><b> {</b></p><p> int m,n=list[0].data,k,*a=new int[n];//設置一個數(shù)組用于存放節(jié)點</p><p><b> node *p;</b></p>
36、<p> cout<<"采用深度優(yōu)先搜索:"<<endl;</p><p> cout<<"請輸入搜索起始節(jié)點:";</p><p><b> cin>>k;</b></p><p> for(int i=0;i<n;i++)<
37、;/p><p><b> {</b></p><p><b> a[i]=k;</b></p><p> list[k].sign=t;</p><p> if(i==n-1)</p><p><b> break;</b></p>
38、<p><b> m=0;</b></p><p> while(list[k].sign==t)</p><p><b> {</b></p><p> p=list[k].next;</p><p> while(p!=NULL)//找出list[k]鏈表中的未遍歷節(jié)點<
39、;/p><p><b> { </b></p><p> k=p->data;</p><p> p=p->next;</p><p> if(list[k].sign==f)</p><p><b> break;</b></p><p
40、><b> }</b></p><p><b> m++;</b></p><p> if(list[k].sign!=f)//判斷是否是p=NULL跳出while循環(huán)的</p><p><b> {</b></p><p> if(i<m)//無節(jié)點可回
41、溯</p><p><b> {</b></p><p> cout<<"該圖為非連通圖!"<<endl;</p><p> break; </p><p><b> }</b></p><p><b>
42、 else</b></p><p> k=a[i-m]; //回溯 </p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> for(i=1;i<
43、=n;i++)//恢復原鄰接表</p><p> list[i].sign=f;</p><p> cout<<"深度優(yōu)先搜索遍歷順序為:";</p><p> for(i=0;i<n;i++)//輸出遍歷結果</p><p> cout<<a[i]<<" &qu
44、ot;;</p><p> cout<<endl;</p><p> delete a;//釋放動態(tài)數(shù)組內存</p><p><b> };</b></p><p> void BreadthFirstSearth(node *list)//廣度優(yōu)先搜索</p><p><
45、;b> {</b></p><p> int m,r,k,n=list[0].data,*a=new int[n+1];//設置數(shù)組存放節(jié)點</p><p><b> node *p;</b></p><p> cout<<"采用廣度優(yōu)先搜索:"<<endl;</p&g
46、t;<p> cout<<"請輸入搜索起始節(jié)點:";</p><p><b> cin>>k;</b></p><p><b> a[0]=n;</b></p><p><b> a[1]=k;</b></p><p
47、> list[k].sign=t;//標識遍歷的第一個節(jié)點</p><p><b> m=0;</b></p><p><b> r=1;</b></p><p> while(m!=r)</p><p><b> {</b></p><p&
48、gt;<b> m++;</b></p><p> p=list[a[m]].next;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> k=p->data;</p><p> if(list[k].s
49、ign==f)</p><p><b> {</b></p><p><b> r++;</b></p><p> a[r]=k;//遍歷到的節(jié)點存入數(shù)組</p><p> list[k].sign=t;//標識已經遍歷過的節(jié)點</p><p><b>
50、}</b></p><p> p=p->next; </p><p><b> }</b></p><p><b> }</b></p><p> for(int i=1;i<=n;i++)//恢復原鄰接表</p><p> list[i]
51、.sign=f;</p><p> cout<<"廣度優(yōu)先搜索遍歷順序為: ";</p><p> for(i=1;i<=n;i++)//輸出遍歷</p><p> cout<<a[i]<<" ";</p><p> cout<<endl;&
52、lt;/p><p> delete a;//釋放動態(tài)數(shù)組內存</p><p><b> };</b></p><p> void PathSearth(node *list)//路徑搜索</p><p><b> {</b></p><p> int *a,c,d,m,
53、k,n=list[0].data;</p><p> cout<<"請輸入起始點:";</p><p><b> cin>>k;</b></p><p> cout<<"請輸入尾節(jié)點:";</p><p><b> cin>
54、;>c;</b></p><p> cout<<"請輸入要找的路徑長度:";</p><p><b> cin>>d;</b></p><p><b> d=d+1;</b></p><p><b> if(d>n
55、)</b></p><p> cout<<"不存在這樣的簡單路徑!"<<endl;</p><p><b> else</b></p><p><b> {</b></p><p> a=new int[d];//動態(tài)分配數(shù)組內存存放路
56、徑上的節(jié)點</p><p> for(int i=0;i<d;i++)</p><p><b> a[i]=0;</b></p><p><b> a[0]=k;</b></p><p><b> node *p;</b></p><p>
57、<b> int x;</b></p><p> list[a[0]].sign=t;</p><p><b> i=1;</b></p><p> while(a[d-1]!=c)</p><p><b> { </b></p><p&g
58、t; while(i<d)</p><p><b> {</b></p><p><b> x=1;</b></p><p> p=list[a[i-1]].next;</p><p> while(p!=NULL)</p><p><b> {&
59、lt;/b></p><p> m=p->data;</p><p> if(i==d-1&&m==a[0]&&a[0]==c)//路徑存在且為回路</p><p><b> {</b></p><p> cout<<"該路徑為一條回路!"
60、;<<endl;</p><p><b> a[i]=m;</b></p><p><b> i++;</b></p><p><b> break;</b></p><p><b> }</b></p><p>
61、; if(list[m].sign==f)</p><p><b> {</b></p><p> if(a[i]!=0)</p><p><b> { </b></p><p> if(x==0)//是否為已經判斷過的錯誤路徑</p><p><b&g
62、t; {</b></p><p><b> a[i]=m;</b></p><p> list[a[i]].sign=t;//標識走過節(jié)點</p><p><b> i++;</b></p><p><b> break;</b></p>&
63、lt;p><b> }</b></p><p> if(a[i]==m)//設置錯誤路徑標識</p><p><b> x=0;</b></p><p><b> }</b></p><p><b> else</b></p>
64、<p><b> {</b></p><p><b> a[i]=m;</b></p><p> list[a[i]].sign=t;//標識走過節(jié)點</p><p><b> i++;</b></p><p><b> break;</b
65、></p><p><b> }</b></p><p><b> }</b></p><p> p=p->next; </p><p><b> }</b></p><p> if(p==NULL)</p&
66、gt;<p><b> {</b></p><p><b> a[i]=0;</b></p><p> i--;//由此節(jié)點往下的路徑不存在,回溯</p><p> list[a[i]].sign=f; //還原標識符 </p><p><b> }
67、</b></p><p> if(i==0)//無法回溯,路徑不存在,跳出循環(huán)</p><p><b> {</b></p><p> cout<<"不存在這樣的簡單路徑!"<<endl;</p><p><b> break; </b&
68、gt;</p><p><b> }</b></p><p><b> }</b></p><p> if(i==0)//無法回溯,路徑不存在,跳出循環(huán)</p><p><b> break;</b></p><p> if(a[d-1]!=c
69、)//路徑不是所要找的</p><p><b> { </b></p><p><b> i--; //回溯</b></p><p><b> if(i>=0)</b></p><p> list[a[i]].sign=f;//還原標識符</p>&
70、lt;p><b> }</b></p><p><b> }</b></p><p> if(a[d-1]==c)//判斷路徑是否找到并輸出</p><p><b> {</b></p><p> cout<<"從節(jié)點"<&
71、lt;k<<"到節(jié)點"<<c<<"的一條路徑為:";</p><p> for(i=0;i<d-1;i++)//輸出路徑</p><p> cout<<a[i]<<"--> ";</p><p> cout<<a[d-
72、1]<<endl;</p><p><b> }</b></p><p><b> delete a;</b></p><p><b> }</b></p><p> for(int i=1;i<=n;i++)//恢復原鄰接表</p>&
73、lt;p> list[i].sign=f; </p><p><b> };</b></p><p> void AdjacencyListDelete(node *list)//釋放鄰接表的空間</p><p><b> {</b></p><p> node *p,*q
74、;</p><p> int n=list[0].data;</p><p> for(int i=1;i<=n;i++)</p><p><b> {</b></p><p> p=list[i].next;</p><p> while(p!=NULL)</p>
75、<p><b> {</b></p><p> q=p->next;</p><p> delete p;//釋放鏈表節(jié)點空間</p><p><b> p=q;</b></p><p><b> } </b></p><p>
76、<b> }</b></p><p> delete list;//釋放鄰接表空間</p><p><b> };</b></p><p> void main()</p><p><b> {</b></p><p> node *list
77、;</p><p> list=creategraph();//以鄰接表的形式建立一個無向圖</p><p><b> char a,b;</b></p><p> cout<<"請選擇遍歷方法:(d:深度優(yōu)先搜索;b:廣度優(yōu)先搜索)";</p><p> for(int i=1;
78、i<2;i++)</p><p><b> {</b></p><p><b> cin>>a;</b></p><p><b> switch(a)</b></p><p><b> {</b></p><p
79、><b> case 'd':</b></p><p> case 'D': DepthFirstSearch(list);</p><p> cout<<"是否采用廣度優(yōu)先搜索重新遍歷?(y:是;n:否)";</p><p><b> cin>&g
80、t;b;</b></p><p> if((b=='y')||(b=='Y'))</p><p> BreadthFirstSearth(list);</p><p><b> break;</b></p><p><b> case 'b':
81、</b></p><p> case 'B': BreadthFirstSearth(list);</p><p> cout<<"是否采用深度優(yōu)先搜索重新遍歷?(y:是;n:否)";</p><p><b> cin>>b;</b></p><
82、p> if((b=='y')||(b=='Y'))</p><p> DepthFirstSearch(list);</p><p><b> break;</b></p><p> default: cout<<"輸入錯誤!請重新輸入!"<<endl
83、;</p><p><b> i--;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> while(1)</b></p><p><b> {<
84、/b></p><p> cout<<"是否搜索路徑?(y:是;n:否)";</p><p><b> cin>>a;</b></p><p> if((a=='y')||(a=='Y'))</p><p> PathSearth(
85、list);</p><p> else if((a=='n')||(a=='N'))</p><p><b> break;</b></p><p><b> else</b></p><p> cout<<"輸入錯誤!"&l
86、t;<endl;</p><p><b> }</b></p><p> AdjacencyListDelete(list);//釋放鄰接表空間</p><p><b> }</b></p><p> 七、程序的調試分析以及測試結果</p><p> 7.1程
87、序的調試分析</p><p> 程序的調試是一個很重要的方面,本題目有個創(chuàng)建鄰接表函數(shù)這是個基礎,如果這里出了差錯當然后面的模塊也就無法進行了。所以在調試程序的時候,我是先進行了對創(chuàng)建鄰接表的函數(shù)進行調試。再確保無誤的情況下在進行了后面模塊的調試,在調試中間經常會出現(xiàn)一些小問題,這是我會經常的采用“隔離”的方法進行逐步的排查。最后還得對整個程序進行總體的調試,不斷完善一些細節(jié)方面,并對輸入的參數(shù)進行多方面的改變
88、,以確保程序的正確性。</p><p> 在整個程序運行無誤的基礎上,在盡力對一些函數(shù)進行優(yōu)化,加強程序的可讀性,方便性。</p><p> 經過這次課程設計讓我收獲了不少東西,只要有以下幾個方面。</p><p> 1)對于基于C++語言的數(shù)據(jù)結構,C++語言的掌握情況是能否學好這么課程的一個重要因素,所以在進行課程設計的時候又對C++語言進行了部分復習。&
89、lt;/p><p> 2)在調試過程中懂得了,學習的嚴謹性,特別對于編程題目?!安钪晾澹囍Ю铩?。當然這也不僅僅在學習方面,生活中也是樣。</p><p> 3)在這個項目中也提醒了自己在平時除了自己的專業(yè)知識外應該積累更多的知識,技能。只有這樣在進行各項事情的過程中才能更加順利。</p><p> 4)“理論聯(lián)系實踐”,實踐是建立在學習的基礎之上,而又在其中
90、不斷的學習的過程。平時上課聽講覺得容易接受,淡然無味,但在實現(xiàn)算法的時候才發(fā)現(xiàn)原來一切并非如此。數(shù)據(jù)結構這門課程比較抽象而且如果自己只是看看書的話根本就不能夠學好的,而且數(shù)據(jù)結構這門課程也應用的非常廣泛,特別是在計算機許多語言中都能夠看到數(shù)據(jù)結構的思想。</p><p><b> 八、附錄</b></p><p> 5.1、課程設計心得體會</p>
91、<p><b> 心得體會 </b></p><p> 通過這近一個星期的數(shù)據(jù)結構課程設計實踐,我學到了很多東西。本次課程設計對我來說正是一個提高自己能力的機會,我好好的抓住機會,努力做好每一步,完善每一步。</p><p> 自己的C語言知識和數(shù)據(jù)結構知識得到了鞏固,編程能力也有了一定的提高。同時也學會了解決問題的方法??偨Y起來,自己主要有以
92、下幾點體會:</p><p> 1.必須牢固掌握基礎知識。由于C語言是大一所學知識,有所遺忘,且未掌握好上學期所學的《數(shù)據(jù)結構》這門課,所以在實踐之初感到棘手。不知如何下手,但在后來的實習過程中自己通過看書和課外資料,并請教其他同學,慢慢地對C語言和數(shù)據(jù)結構知識有所熟悉,這時才逐漸有了思路。所以,這次課程之后,我告誡自己:今后一定要牢固掌握好專業(yè)基礎知識。</p><p> 2.必須培
93、養(yǎng)嚴謹?shù)膽B(tài)度。自己在編程時經常因為一些類似于“少了分號”的小錯誤而導致錯誤,不夠認真細致,這給自己帶來了許多麻煩。編程是一件十分嚴謹?shù)氖虑椋莶坏民R虎。所以在今后自己一定要培養(yǎng)嚴謹?shù)膽B(tài)度。我想這不僅是對于程序設計,做任何事都應如此。</p><p> 3.這次課程設計也讓我充分認識到《數(shù)據(jù)結構》這門課的重要性。它給我們一個思想和大綱,讓我們在編程時容易找到思路,不至于無章可循。同時它也有廣泛的實際應用。<
94、/p><p> 在實踐過程中,我和組員分工合作,勇于提出問題,解決難題,在實踐中,我遇到了許多困難,但都一一克服了。最終我圓滿的完成此次課程設計,學到了很多東西。同時,程序還存在著一些缺陷,就是不能輸出原圖,存在一些局限性,不過我會繼續(xù)努力思考,完善程序,做到最好。</p><p> 此次試驗,老師對我的指導是至關重要的,在此我非常感謝老師,從他那我學到了很多有關c語言的知識,為以后的學習
95、打下了一定的基礎。</p><p> 總的來說,本次課程設計,不僅我的知識面有所提高,另外我的綜合素質也有所提高,,比如說:團隊精神、提問能力、思考能力等等。這次課程設計為我以后更好的學習和使用c語言打下了基礎。</p><p><b> 參考文獻</b></p><p> 1.《數(shù)據(jù)結構 (C語言版)》嚴蔚敏、吳偉民 主編 清華大學出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結構課程設計---圖的遍歷
- 數(shù)據(jù)結構課程設計報告(圖的遍歷)
- 《圖的建立與遍歷》數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計-圖的遍歷和構建
- 圖的廣度優(yōu)先遍歷-數(shù)據(jù)結構課程設計
- 數(shù)據(jù)結構課程設計-- 圖的遍歷和生成樹求解
- 數(shù)據(jù)結構課程設計---圖的遍歷和生成樹求解
- 數(shù)據(jù)結構課程設計--樹的遍歷,文件目錄結構的顯示
- 數(shù)據(jù)結構課程設計——樹的遍歷文件目錄結構的顯示
- 《數(shù)據(jù)結構遍歷二叉樹》課程設計
- 新數(shù)據(jù)結構課程設計---圖的遍歷和生成樹求解實現(xiàn)
- 數(shù)據(jù)結構課程設計--二叉樹的遍歷
- 數(shù)據(jù)結構課程設計--數(shù)據(jù)結構課程設計----huffman編碼
- 數(shù)據(jù)結構課程設計之二叉樹的遍歷
- 數(shù)據(jù)結構課程設計---二叉樹的遍歷算法集成
- 數(shù)據(jù)結構課程設計--數(shù)據(jù)結構的實現(xiàn)
- 數(shù)據(jù)結構課程設計--按層次遍歷二叉樹
- 數(shù)據(jù)結構課程設計-圖的遍歷和生成樹的求解實現(xiàn)說明書
- 數(shù)據(jù)結構-鄰接表存儲及遍歷-課程設計-實驗報告
- 數(shù)據(jù)結構課程設計
評論
0/150
提交評論