版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 數(shù) 據(jù) 結(jié) 構(gòu) 課 程 設(shè) 計</p><p> 設(shè)計題目: 無向圖的操作 </p><p> 學(xué)生姓名: </p><p> 專業(yè)班級: </p><p> 指導(dǎo)教師: </p&
2、gt;<p> 完成時間: </p><p> 課題名稱無向圖的操作</p><p> 院 系年級專業(yè)</p><p> 學(xué) 號姓 名成 績</p><p> 課題設(shè)計目的與設(shè)計意義1、課題設(shè)計目的:一、熟悉圖的兩種常用的存儲結(jié)構(gòu),鄰接矩陣。二、建立有向圖,用鄰接表存儲結(jié)構(gòu)存儲。
3、 三、在鄰接表存儲結(jié)構(gòu)上實現(xiàn)深度優(yōu)先遍歷。2、課題設(shè)計意義:一、能夠熟悉關(guān)于無向圖鄰接矩陣和無向圖鄰接表的輸出建立等操作。二、能夠理解關(guān)于無向圖的基本操作有何目的與意義。三、將以上的理解加以運用與操作。指導(dǎo)教師:年 月 日</p><p><b> 目 錄</b></p><p> 第一章 課程設(shè)計的目的與意義1&l
4、t;/p><p> 第二章 課程設(shè)計的內(nèi)容與要求1</p><p> 2.1課程設(shè)計的內(nèi)容1</p><p><b> 2.1.1定義1</b></p><p><b> 2.1.2操作2</b></p><p> 2.2課程設(shè)計的要求2</p>
5、<p> 第三章 需求分析2</p><p><b> 3.1原理2</b></p><p><b> 3.2要求3</b></p><p> 3.3系統(tǒng)總框架3</p><p><b> 3.4運行環(huán)境3</b></p><
6、p> 3.5程序的輸入(包含輸入的數(shù)據(jù)格式和說明)4</p><p><b> 3.6開發(fā)工具4</b></p><p> 第四章 算法與描述4</p><p> 4.1圖的深度優(yōu)先遍歷4</p><p> 4.2具體過程應(yīng)為4</p><p><b> 第五
7、章 源程序5</b></p><p> 第六章 運行結(jié)果12</p><p> 第七章 結(jié)束語17</p><p> 第八章 參考文獻18</p><p> 第一章 課程設(shè)計的目的與意義</p><p> 圖是一種復(fù)雜的非線性結(jié)構(gòu)。在人工智能、工程、數(shù)學(xué)、物理、化學(xué)、計算機科學(xué)等領(lǐng)域中,圖
8、結(jié)構(gòu)有著廣泛的應(yīng)用。</p><p> 在線性結(jié)構(gòu)中,結(jié)點之間的關(guān)系是線性關(guān)系,除開始結(jié)點和終端結(jié)點外,每個結(jié)點只有一個直接前趨和直接后繼。在樹形結(jié)構(gòu)中,結(jié)點之間的關(guān)系實質(zhì)上是層次關(guān)系,除根結(jié)點之外,每個結(jié)點都只能有一個雙親(前趨),但每個結(jié)點可以有零個或多個孩子(后繼)。因此,層次關(guān)系是非線性的。但是,它在樹的結(jié)點之間建立了一個層次結(jié)構(gòu);同層次上的每個結(jié)點可以和下一層的零個或多個結(jié)點(即孩子)相關(guān),但只能和上
9、一層的一個結(jié)點(即雙親)相關(guān)(根節(jié)點除外)。然而在土結(jié)構(gòu)中,對結(jié)點(圖中常稱為頂點)的前趨和后繼個數(shù)都是不加限制的,即結(jié)點之間的關(guān)系是任意的。圖中任意兩個結(jié)點之間都可能相關(guān)。</p><p> 鄰接表(Adjacency List)是圖的一種順序存儲與鏈式存儲結(jié)合的存儲方法,類似于樹的孩子鏈表表示法。由于它只考慮非零元素,因而節(jié)省了零元素所占的存儲空間。它對于無向圖和有向圖都適用。</p><
10、;p> 本學(xué)期我們學(xué)了很多圖的存儲結(jié)構(gòu),有鄰接矩陣。鄰接表等。其中鄰接矩陣和鄰接表為圖的主要存儲結(jié)構(gòu)。圖的鄰接矩陣存儲結(jié)構(gòu)的主要特點是吧圖的邊信息與鏈式存數(shù)相結(jié)合的存儲方法。從空間性能上說,圖越洗漱鄰接表的空間效率也相應(yīng)的越高。從時間性能上來說,鄰接表在圖的算法中時間代價較鄰接矩陣要第。</p><p> 本課程設(shè)計主要是實現(xiàn)使用鄰接表存儲結(jié)構(gòu)存儲一個圖,并在所存儲的圖中實現(xiàn)深度優(yōu)先和廣度優(yōu)先遍歷以及其
11、鏈表結(jié)構(gòu)的輸出。通過實習(xí)鞏固并提高我的C語言知識,并初步了解Visual C++的知識,提高編程能力與專業(yè)水平。</p><p> 第二章 課程設(shè)計的內(nèi)容與要求</p><p> 2.1課程設(shè)計的內(nèi)容</p><p><b> 2.1.1定義</b></p><p> 有向圖與無向圖:圖是一種復(fù)雜的非線性結(jié)構(gòu)。圖
12、G由兩個集合V和E組成,記為G=(V,E),其中V是頂點的有窮非空集合,E是V中頂點偶對(稱為邊)的有窮集。通常,也將圖G的頂點集和邊集分別記為V(G)和E(G)。E(G)可以是空集,若E(G)為空,則圖G只有頂點而沒有邊。若圖G中的每條邊都是有方向的,則稱G為有向圖;若圖G中的每條邊都是沒有方向的,則稱G為無向圖。</p><p> 鄰接矩陣:鄰接矩陣是表示定點之間相鄰關(guān)系的矩陣。</p>&l
13、t;p> 鄰接表:對于圖G中的每個頂點vi,該方法把所有鄰接于vi的頂點vj鏈成一個單鏈變,這個單鏈表就成為頂點vi的鄰接表。</p><p> 2.1.2操作 熟悉掌握關(guān)于無向圖鄰接表和鄰接矩陣的運用以及操作,包括:</p><p> 無向圖鄰接矩陣的建立、</p><p> 無向圖鄰接矩陣的輸出、</p><p> 無向圖
14、鄰接表的建立、</p><p> 無向圖鄰接表的輸出、</p><p> 無向圖鄰接表的深度遍歷、</p><p> 無向圖鄰接矩陣的深度遍歷、</p><p> 無向圖鄰接表的廣度遍歷、</p><p> 無向圖鄰接矩陣的廣度遍歷。</p><p> 2.2課程設(shè)計的要求</
15、p><p> 一、能夠熟悉關(guān)于無向圖鄰接矩陣和無向圖鄰接表的輸出建立等操作。</p><p> 二、能夠理解關(guān)于無向圖的基本操作有何目的與意義。</p><p> 三、將以上的理解加以運用與操作。</p><p><b> 第三章 需求分析</b></p><p><b> 3.1
16、原理</b></p><p> 本課題要求采取鄰接表的存儲結(jié)構(gòu)。鄰接表是一種鏈式的存儲結(jié)構(gòu),在鄰接表中,對圖中每個頂點建立一個單鏈表,第i個單鏈表中的結(jié)點表示依附于頂點Vi的邊(對有向圖是以頂點Vi為尾的弧)。每個結(jié)點由3個域組成,其中鄰接點域(adjvex)指示與頂點Vi鄰接的點在圖中的位置,鏈域(nextarc)指示下一條邊或弧的結(jié)點;數(shù)據(jù)域(info)存儲和邊或弧相關(guān)的信息,如權(quán)值等。 <
17、;/p><p> 所以一開始必須先定義鄰接表的邊結(jié)點類型以及鄰接表類型,并對鄰接表進行初始化,然后根據(jù)所輸入的相關(guān)信息,包括圖的頂點數(shù)、邊數(shù)、是否為有向,以及各條邊的起點與終點序號,建立圖的鄰接表。此時要分兩種情況:有向圖與無向圖。對于無向圖,一條邊的兩的個頂點,互為鄰接點,所以在存儲時,應(yīng)向起點的單鏈表表頭插入一邊結(jié)點,即終點。同時將終點的單鏈表表頭插入一邊結(jié)點,即起點。對于有向圖,只能向起點的單鏈表的表頭插入一
18、個邊結(jié)點,即終點。但不能反過來。至于鄰接表的輸出,由于不了解C++中的繪圖操作,故采用for語句輸出各結(jié)點,并配合一些符號完成鄰接表的輸出</p><p> 當圖比較稀疏時,鄰接表存儲是最佳的選擇。并且在存儲圖的時候鄰接表要比鄰接矩陣節(jié)省時間。在圖存儲在系統(tǒng)中后,我們有時還需要對圖進行一些操作,如需要添加一個頂點,修改一個頂點,或者刪除一個頂點,而這些操作都需要圖的深度優(yōu)先及廣度優(yōu)先遍歷為基礎(chǔ)。本系統(tǒng)將構(gòu)建一個
19、圖,圖的結(jié)點存儲的是int 型數(shù)據(jù)。運行本系統(tǒng)可對該圖進行鏈式結(jié)構(gòu)輸出、深度優(yōu)先及廣度優(yōu)先遍歷。</p><p><b> 3.2要求</b></p><p> ?。?)建立基于鄰接表的圖</p><p><b> (2)對圖進行遍歷</b></p><p><b> ?。?)輸出遍歷
20、結(jié)果</b></p><p><b> 3.3系統(tǒng)總框架</b></p><p> 系統(tǒng)的主要功能是用鄰接表存儲結(jié)構(gòu)在圖中對頂點進行插入、刪除、修改操作,并對圖進行深度優(yōu)先及廣度優(yōu)先遍歷??偪蚣苋缦虏D進行深度優(yōu)先及廣度優(yōu)先遍歷??偪蚣苋缦拢?lt;/p><p><b> 3.4運行環(huán)境</b></p
21、><p> ?。?)硬件:計算機486/64M以上 (2)操作系統(tǒng): WIN9x 以上/WIN2000/WIN XP/WIN ME (3)相關(guān)軟件:vistualC++</p><p> 3.5程序的輸入(包含輸入的數(shù)據(jù)格式和說明) (1)輸入頂點數(shù),及各頂點信息(數(shù)據(jù)格式為整形) (2)輸入邊數(shù),及權(quán)值(數(shù)據(jù)格式為整形)</p><p>&l
22、t;b> 3.6開發(fā)工具</b></p><p><b> C++語言</b></p><p><b> 第四章 算法與描述</b></p><p> 4.1圖的深度優(yōu)先遍歷 假設(shè)初始狀態(tài)是圖中所有頂點未曾被訪問,深度優(yōu)先遍歷可以從圖的初始點出發(fā),訪問初始點,然后依次從v未被訪問的鄰接點出發(fā)
23、深度優(yōu)先遍歷圖,直至圖中所有和v有路徑相通的頂點都被訪問到;若此時仍有頂點未被訪問到,則從另一個未被訪問的頂點出發(fā),重復(fù)上述過程,直至所有點都被訪問到為止。這是一個遞歸的過程。所以在實現(xiàn)深度優(yōu)先遍歷的過程中必須遞歸調(diào)用深度優(yōu)先搜索函數(shù)。而且在深度優(yōu)先搜索函數(shù)中必須設(shè)一標志數(shù)組以標記結(jié)點是否被訪問。</p><p><b> 4.2具體過程應(yīng)為</b></p><p>
24、; 先訪問初始點Vi,并標志其已被訪問。此時定義一指向邊結(jié)點的指針p,并建立一個while()循環(huán),以指針所指對象不為空為控制條件,當Vi的鄰接點未被訪問時,遞歸調(diào)用深度優(yōu)先遍歷函數(shù)訪問之。然后將p指針指向下一個邊結(jié)點。</p><p> 圖的存儲與遍歷算法-數(shù)據(jù)結(jié)構(gòu)一樣,也是從初始點Vi出發(fā)開始訪問,訪問初始點,標志其已被訪問,并將已訪問過的初始點序號i入隊。當隊列非空時進行循環(huán)處理,刪除隊首元素,第一次執(zhí)
25、行時k的值為i,即front=(front+1)%MaxLength。然后取Vk鄰接表的表頭指針int k=q[front]; edgenode* p=GL[k]。當邊結(jié)點指針p不為空時,通過while()循環(huán),并以p是否為空為控制條件,依次搜索Vk的每一個結(jié)點。若Vj沒有被訪問過則進行處理。訪問完后,將p指向p->next。其中的while循環(huán)部分的代碼如下:</p><p> while(p!=NUL
26、L){//依次搜索Vk的每一個結(jié)點int j=p->adjvex; //Vj為Vk的一個鄰接點if(!visited[j]){ //若Vj沒有被訪問過則進行處理cout<<j<<'' '';visited[j]=true;rear=(rear+1)%MaxLength;q[rear]=j;}p=p->next;}這樣就可以訪問所有結(jié)點,完成圖的廣度
27、優(yōu)先遍歷。</p><p><b> 第五章 源程序</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> typedef int datatype;</p><p> typede
28、f char vextype;</p><p> #define maxsize 64</p><p> typedef struct pnode</p><p><b> {</b></p><p> datatype data;</p><p> struct pnode *next
29、;</p><p> }linklist;</p><p> typedef struct</p><p><b> {</b></p><p> linklist *front,*rear;</p><p> }linkqueue;</p><p> link
30、queue *q;</p><p> typedef struct</p><p><b> {</b></p><p> char vexs[maxsize];</p><p> int arcs[maxsize][maxsize];</p><p> int vexnum,arcnu
31、m;</p><p><b> }graph;</b></p><p> graph *ga;</p><p> typedef struct node</p><p><b> {</b></p><p> int adjvex;</p><p
32、> struct node *next;</p><p> }edgenode;</p><p> typedef struct</p><p><b> {</b></p><p> vextype topvex;</p><p> edgenode *link;</p&
33、gt;<p><b> }topnode;</b></p><p> topnode gl[20];</p><p> void setnull(linkqueue *q)</p><p><b> {</b></p><p> q->front=(linklist *
34、)malloc(sizeof(linklist));</p><p> q->front->next=NULL;</p><p> q->rear=q->front;</p><p><b> }</b></p><p> int empty(linkqueue *q)</p>
35、<p><b> {</b></p><p> if(q->front==q->rear)</p><p><b> return 1;</b></p><p><b> else</b></p><p><b> return 0
36、;</b></p><p><b> }</b></p><p> void enqueue(linkqueue *q,datatype x)</p><p><b> {</b></p><p> q->rear->next=(linklist *)malloc(s
37、izeof(linklist));</p><p> q->rear=q->rear->next;</p><p> q->rear->data=x;</p><p> q->rear->next=NULL;</p><p><b> }</b></p>&
38、lt;p> int dequeue(linkqueue *q)</p><p><b> {</b></p><p> linkqueue *s;</p><p> if(empty(q))</p><p><b> {</b></p><p> print
39、f("隊為空!");</p><p> return NULL;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> s=q->fr
40、ont;</p><p> q->front=q->front->next;</p><p><b> free(s);</b></p><p> return(q->front->data);</p><p><b> }</b></p><
41、;p><b> }</b></p><p> void creat_juzhe(graph *ga)//無向圖鄰接矩陣的建立</p><p><b> {</b></p><p> int i,j,k;</p><p> getchar();</p><p>
42、 printf("請輸入%d個元素:",ga->vexnum);</p><p> for(i=0;i<ga->vexnum;i++)</p><p> scanf("%c",&ga->vexs[i]);</p><p> for(i=0;i<ga->vexnum;i++)&
43、lt;/p><p> for(j=0;j<ga->vexnum;j++)</p><p> ga->arcs[i][j]=0;</p><p> printf("請輸入鄰接的倆個頂點的下標:\n");</p><p> for(k=0;k<ga->arcnum;k++)</p>
44、<p><b> {</b></p><p> scanf("%d%d",&i,&j);</p><p> ga->arcs[i][j]=1;</p><p> ga->arcs[j][i]=1;</p><p><b> }</b&
45、gt;</p><p><b> }</b></p><p> void print_juzhe(graph *ga)//無向圖鄰接矩陣的輸出</p><p><b> {</b></p><p><b> int i,j;</b></p><p&g
46、t; printf("建立好后的無向圖的鄰接矩陣為:\n");</p><p> for(i=0;i<ga->vexnum;i++)</p><p><b> {</b></p><p> printf("%c\t",ga->vexs[i]);</p><p&
47、gt; for(j=0;j<ga->vexnum;j++)</p><p> printf("%d\t",ga->arcs[i][j]);</p><p> printf("\n\n\n");</p><p><b> }</b></p><p><
48、b> }</b></p><p> void creat_ljbiao(topnode gl[],int n,int e)//無向圖鄰接表的建立</p><p><b> {</b></p><p> int i,j,k;</p><p> edgenode *p;</p>&l
49、t;p> getchar();</p><p> printf("請輸入%d個頂點的元素:",n);</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> scanf("%c",&gl[i].top
50、vex);</p><p> gl[i].link=NULL;</p><p><b> }</b></p><p> printf("請輸入要鄰接的倆個頂點的下標:\n");</p><p> for(k=0;k<e;k++)</p><p><b>
51、 {</b></p><p> scanf("%d%d",&i,&j);</p><p> p=(edgenode *)malloc(sizeof(edgenode));</p><p> p->adjvex=j;</p><p> p->next=gl[i].link;&
52、lt;/p><p> gl[i].link=p;</p><p> p=(edgenode *)malloc(sizeof(edgenode));</p><p> p->adjvex=i;</p><p> p->next=gl[j].link;</p><p> gl[j].link=p;<
53、/p><p><b> }</b></p><p><b> }</b></p><p> void print_ljbiao(topnode gl[],int n)//無向圖鄰接表的輸出</p><p><b> {</b></p><p><
54、;b> int i;</b></p><p> edgenode *p;</p><p> printf("建立后的無向圖的鄰接表為:\n");</p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p
55、> printf("%c\t",gl[i].topvex);</p><p> p=gl[i].link;</p><p><b> while(p)</b></p><p><b> {</b></p><p> printf("%d\t",
56、p->adjvex);</p><p> p=p->next;</p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p><p><b> }</
57、b></p><p> int visited_lj[20]={0};</p><p> void DFSL(topnode gl[],int i)//無向圖鄰接表的深度遍歷</p><p><b> {</b></p><p> edgenode *p;</p><p> pri
58、ntf("%c",gl[i].topvex);</p><p> visited_lj[i]=1;</p><p> p=gl[i].link;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(visite
59、d_lj[p->adjvex]==0)</p><p> DFSL(gl,p->adjvex);</p><p> p=p->next;</p><p><b> }</b></p><p><b> }</b></p><p> int visi
60、ted[20]={0};</p><p> void DFS(graph *ga,int i)//無向圖鄰接矩陣的深度遍歷</p><p><b> {</b></p><p><b> int j,n;</b></p><p> printf("%c",ga->v
61、exs[i]);</p><p> visited[i]=1;</p><p> for(j=0;j<ga->vexnum;j++)</p><p> if((ga->arcs[i][j]==1)&&(visited[j]==0))</p><p> DFS(ga,j);</p><
62、;p><b> }</b></p><p> int visited_ljb[20]={0};</p><p> void BFSL(topnode gl[],int k)//無向圖鄰接表的廣度遍歷</p><p><b> {</b></p><p><b> int i
63、;</b></p><p> edgenode *p;</p><p> linkqueue Q;</p><p> setnull(&Q);</p><p> printf("%c",gl[k].topvex);</p><p> visited_ljb[k]=1;&
64、lt;/p><p> enqueue(&Q,k);</p><p> while(!empty(&Q))</p><p><b> {</b></p><p> i=dequeue(&Q);</p><p> p=gl[i].link;</p><
65、p> while(p!=NULL)</p><p><b> {</b></p><p> if(!visited_ljb[p->adjvex])</p><p><b> {</b></p><p> printf("%c",gl[p->adjvex
66、].topvex);</p><p> visited_ljb[p->adjvex]=1;</p><p> enqueue(&Q,p->adjvex);</p><p><b> }</b></p><p> p=p->next;</p><p><b&g
67、t; }</b></p><p><b> }</b></p><p><b> }</b></p><p> int visited_jz[20]={0};</p><p> void BFS(graph *ga,int k)//無向圖鄰接矩陣的廣度遍歷</p>
68、<p><b> {</b></p><p><b> int i,j;</b></p><p> linkqueue Q;</p><p> setnull(&Q);</p><p> printf("%c",ga->vexs[k]);<
69、;/p><p> visited_jz[k]=1;</p><p> enqueue(&Q,k);</p><p> while(!empty(&Q))</p><p><b> {</b></p><p> i=dequeue(&Q);</p><
70、;p> for(j=0;j<ga->vexnum;j++)</p><p> if((ga->arcs[i][j]==1)&&(!visited_jz[j]))</p><p><b> {</b></p><p> printf("%c",ga->vexs[j]);&l
71、t;/p><p> visited_jz[j]=1;</p><p> enqueue(&Q,j);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>&
72、lt;p> void main()</p><p><b> {</b></p><p> int i=1,j,n,e;</p><p><b> graph ga;</b></p><p> topnode *gl;</p><p><b> w
73、hile(i)</b></p><p><b> {</b></p><p> printf("\n0:無向圖鄰接矩陣的建立\n1:無向圖鄰接表的建立\n2:鄰接矩陣的輸出\n3:鄰接表的輸出\n4:鄰接矩陣的深度遍歷\n5:鄰接表的深度遍歷\n6:鄰接矩陣的廣度遍歷\n7:鄰接表的廣度遍歷\n");</p><
74、p> scanf("%d",&i);</p><p><b> switch(i)</b></p><p><b> {</b></p><p> case 0:printf("請輸入頂點數(shù)和邊數(shù):");</p><p> scanf(
75、"%d%d",&ga.vexnum,&ga.arcnum);</p><p> creat_juzhe(&ga);</p><p><b> break;</b></p><p> case 1:printf("請輸入頂點數(shù)和邊數(shù):");</p><p&g
76、t; scanf("%d%d",&n,&e);</p><p> creat_ljbiao(&gl,n,e);</p><p><b> break;</b></p><p> case 2:print_juzhe(&ga);</p><p><b>
77、 break;</b></p><p> case 3:print_ljbiao(&gl,n);</p><p><b> break;</b></p><p> case 4:printf("請輸入要遍歷的起始位置:");</p><p> scanf("%d
78、",&j);</p><p> printf("鄰接矩陣深度遍歷后的結(jié)果為:");</p><p> DFS(&ga,j);</p><p><b> break;</b></p><p> case 5:printf("請輸入要遍歷的起始位置:"
79、);</p><p> scanf("%d",&j);</p><p> printf("鄰接表深度遍歷后的結(jié)果為:");</p><p> DFSL(&gl,j);</p><p><b> break;</b></p><p>
80、 case 6:printf("請輸入要遍歷的起始位置:");</p><p> scanf("%d",&j);</p><p> printf("鄰接矩陣廣度遍歷后的結(jié)果為:");</p><p> BFS(&ga,j,n);</p><p><b>
81、; break;</b></p><p> case 7:printf("請輸入要遍歷的起始位置:");</p><p> scanf("%d",&j);</p><p> printf("鄰接表廣度遍歷后的結(jié)果為:");</p><p> BFSL(&
82、amp;gl,j);</p><p><b> break;</b></p><p><b> }</b></p><p> printf("\n0:結(jié)束\n1:繼續(xù)\n");</p><p> scanf("%d",&i);</p>
83、;<p><b> }</b></p><p><b> }</b></p><p><b> 第六章 運行結(jié)果</b></p><p><b> 主菜單界面如下:</b></p><p> 無向圖鄰接矩陣的建立:</p>
84、;<p> 無向圖鄰接矩陣的輸出:</p><p> 無向圖鄰接矩陣的深度遍歷:</p><p> 無向圖鄰接矩陣的廣度遍歷:</p><p> 無向圖鄰接表的建立:</p><p> 無向圖鄰接表的輸出:</p><p> 無向圖鄰接表的深度遍歷:</p><p>
85、 無向圖鄰接表的廣度遍歷:</p><p><b> 第七章 結(jié)束語</b></p><p> 轉(zhuǎn)眼,為期兩周的《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計實習(xí)即將結(jié)束了。在這次實習(xí)中,自己的C語言知識和數(shù)據(jù)結(jié)構(gòu)知識得到了鞏固,編程能力也有了一定的提高。同時也學(xué)會了解決問題的方法??偨Y(jié)起來,自己主要有以下幾點體會: </p><p> 必須牢固掌握基礎(chǔ)知識。由于
86、C語言是大一所學(xué)知識,有所遺忘,且未掌握好這學(xué)期所學(xué)的《數(shù)據(jù)結(jié)構(gòu)》這門課,所以在實習(xí)之初感到棘手。不知如何下手,但在后來的實習(xí)過程中自己通過看書和課外資料,并請教其他同學(xué),慢慢地對C語言和數(shù)據(jù)結(jié)構(gòu)知識有所熟悉。這時才逐漸有了思路。所以,這次實習(xí)之后,我告誡自己:今后一定要牢固掌握好專業(yè)基礎(chǔ)知識。 </p><p> 2.必須培養(yǎng)嚴謹?shù)目茖W(xué)態(tài)度。自己在編程時經(jīng)常因為一些類似于“少了分號”的小錯誤而導(dǎo)致錯誤,不夠認
87、真細致,這給自己帶來了許多麻煩。編程是一件十分嚴謹?shù)氖虑?,容不得馬虎。所以在今后自己一定要培養(yǎng)嚴謹?shù)目茖W(xué)態(tài)度。我想這不僅是對于程序設(shè)計,做任何事都應(yīng)如此。 </p><p> 3.這次課程設(shè)計也讓我充分認識到《數(shù)據(jù)結(jié)構(gòu)》這門課的重要性。它給我們一個思想和大綱,讓我們在編程時容易找到思路,不至于無章可循。同時它也有廣泛的實際應(yīng)用。 </p><p> 總之,在這次實習(xí)中,自己的C語言以及
88、數(shù)據(jù)結(jié)構(gòu)知識得到提高,編程能力也得到了提高。</p><p><b> 第八章 參考文獻</b></p><p> [1]唐策善,黃劉生等編著.數(shù)據(jù)結(jié)構(gòu)—用C語言描述.高等教育出版社,1995</p><p> [2]徐德民.最新C語言程序設(shè)計教程.電子工業(yè)出版社,1992</p><p> [3]嚴蔚敏,陳文博
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實驗報告
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計實驗報告---有關(guān)查找的操作
- 數(shù)據(jù)結(jié)構(gòu)實踐環(huán)節(jié)實驗報告(課程設(shè)計)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實驗報告(赫夫曼編碼)
- 數(shù)據(jù)結(jié)構(gòu)-串的存儲表示及基本操作--課程設(shè)計-實驗報告
- 06年數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實驗報告
- 《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計》航班查詢系統(tǒng)實驗報告
- 數(shù)據(jù)結(jié)構(gòu)各種排序算法的課程設(shè)計實驗報告
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計實驗報告--多種排序方式的比較
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計圖書管理系統(tǒng)實驗報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計avl樹實現(xiàn)及其分析實驗報告
- 數(shù)據(jù)結(jié)構(gòu)-鄰接表存儲及遍歷-課程設(shè)計-實驗報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---skiplist基本操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---鏈表操作
- 國開(電大)數(shù)據(jù)結(jié)構(gòu)課程實驗報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告(圖的遍歷)
- 數(shù)據(jù)結(jié)構(gòu)實驗報告-串
評論
0/150
提交評論