版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章圖本章教學(xué)目的與要求:掌握?qǐng)D的基本概念、存儲(chǔ)方法、基本操作。掌握與圖相關(guān)的一些算法,如遍歷、最短路徑、最小生成樹(shù)等。7.1圖的定義和術(shù)語(yǔ)圖的實(shí)例其中用圓圈標(biāo)示的是數(shù)據(jù)元素,在圖中稱為頂點(diǎn)。v1v2v3v4v1v2v3v4v5v1v2v4v3v5v616662345圖G1圖G2圖G37.1圖的定義和術(shù)語(yǔ)頂點(diǎn)之間的連線,表示數(shù)據(jù)元素之間的關(guān)系。v1v2v3v4v1v2v3v4v5v1v2v4v3v5v616662345圖G1圖G2圖G32023/2/44圖(Graph)——圖G是由兩個(gè)集合V(G)和E(G)組成
的,記為G=(V,E)其中:V(G)是頂點(diǎn)的非空有限集
E(G)是關(guān)系的有限集合,關(guān)系是頂點(diǎn)的無(wú)序?qū)蛴行驅(qū)τ邢驁D——有向圖G是由兩個(gè)集合V(G)和E(G)組成
V(G)是頂點(diǎn)的非空有限集,E(G)是有向邊(也稱弧)的有限集合,弧是頂點(diǎn)的有序?qū)?,記?lt;vi,vj>,vi,vj是頂點(diǎn),vi為弧尾,vj為弧頭無(wú)向圖——無(wú)向圖G是由兩個(gè)集合V(G)和E(G)組成
V(G)是頂點(diǎn)的非空有限集,E(G)是邊的有限集合,邊是頂
點(diǎn)的無(wú)序?qū)?,記為(vi,vj)或(vj,vi),并且(vi,vj)=(vj,vi)
圖的概念v1v2v3v4v1v2v3v4v5圖G1圖G2G1=(V1,{A1})其中,V1={v1,v2,v3.v4}A1={<v1,v2>,<v1,v3>,<v3,v4>,<v4,v1>}G2=(V2,{E2})其中,V2={v1,v2,v3.v4,v5}E2={(v1,v2),(v1,v4),(v2,v3),(v2,v5),(v3,v4),(v3,v5)}7.1圖的定義和術(shù)語(yǔ)在G1中,連線上有箭頭表示方向,則該連線稱為弧。我們可以用<v1,v2>表示一條弧,v1稱為弧尾,v2稱為弧頭。相應(yīng)的,圖G1稱為有向圖。v1v2v3v4v1v2v3v4v5v1v2v4v3v5v616662345圖G1圖G2圖G37.1圖的定義和術(shù)語(yǔ)在G2中,沒(méi)有箭頭的連線稱為邊。圖G2稱為無(wú)向圖。v1v2v3v4v1v2v3v4v5v1v2v4v3v5v616662345圖G1圖G2圖G37.1圖的定義和術(shù)語(yǔ)在G3中,連線上標(biāo)有與之相關(guān)聯(lián)的數(shù)值(稱為權(quán)),這種形式的圖通常稱為網(wǎng)。v1v2v3v4v1v2v3v4v5v1v2v4v3v5v616662345圖G1圖G2圖G37.1圖的定義和術(shù)語(yǔ)有n個(gè)頂點(diǎn),且每?jī)蓚€(gè)頂點(diǎn)之間均有邊的無(wú)向圖,稱為完全圖。完全圖共有n*(n-1)/2條邊。幾個(gè)完全圖的例子如下:v1v2v3v4v1v1v2v1v2v37.1圖的定義和術(shù)語(yǔ)有n個(gè)頂點(diǎn),且每?jī)蓚€(gè)頂點(diǎn)之間均有邊的有向圖,稱為有向完全圖。有向完全圖共有n*(n-1)條邊。幾個(gè)有向完全圖的例子如下:v1v2v3v4v1v1v2v1v2v3子圖——如果圖G(V,E)和圖G’(V’,E’),滿足:V’V,E’E
則稱G’為G的子圖24513635621v1v3v4v2v1v3v2v3v47.1圖的定義和術(shù)語(yǔ)7.1圖的定義和術(shù)語(yǔ)在無(wú)向圖中,若(v,w)是一條邊,(v,w)∈E則v,w互為鄰接點(diǎn)uvw7.1圖的定義和術(shù)語(yǔ)在無(wú)向圖中,頂點(diǎn)v的度是指與v相連的邊的條數(shù)。uvw7.1圖的定義和術(shù)語(yǔ)在有向圖中,頂點(diǎn)v的出度是指v作為弧尾的弧的條數(shù)。記為OD(v)uvw7.1圖的定義和術(shù)語(yǔ)在有向圖中,頂點(diǎn)v的入度是指v作為弧頭的弧的條數(shù)。記為ID(v)uvw7.1圖的定義和術(shù)語(yǔ)在有向圖中,頂點(diǎn)v的度是指v的入度和出度之和。記為TD(v)TD(v)=ID(v)+OD(v)uvw7.1圖的定義和術(shù)語(yǔ)頂點(diǎn)v到頂點(diǎn)w的路徑指從v出發(fā)沿著邊或者弧到達(dá)w所經(jīng)過(guò)的頂點(diǎn)序列。如上圖中v-v2-w是從v到w的一條路經(jīng)路徑上邊或者弧的數(shù)目稱為路徑的長(zhǎng)度。序列中頂點(diǎn)不重復(fù)的路徑稱為簡(jiǎn)單路徑vv2v3v4w7.1圖的定義和術(shù)語(yǔ)第一個(gè)頂點(diǎn)和最后一個(gè)頂點(diǎn)相同的路徑稱為回路或者環(huán)。路徑v-v2-v3-v4-v就是一條回路除第一個(gè)頂點(diǎn)和最后一個(gè)頂點(diǎn)之外,其余頂點(diǎn)不重復(fù)出現(xiàn)的回路,稱為簡(jiǎn)單回路或者簡(jiǎn)單環(huán)vv2v3v4w7.1圖的定義和術(shù)語(yǔ)在無(wú)向圖中,如果從v到w之間有路徑,則稱頂點(diǎn)v和頂點(diǎn)w是連通的。如果圖中任意兩個(gè)頂點(diǎn)都是連通的,則稱該圖為連通圖。vv2v3v4w連通圖7.1圖的定義和術(shù)語(yǔ)上圖看作一個(gè)整體,不是連通圖。v1v2v3v4v5v6v77.1圖的定義和術(shù)語(yǔ)無(wú)向圖中的一個(gè)極大連通子圖,稱為該圖的連通分量。v1v2v3v4v5v6v3v6v1v2v4v52個(gè)連通分量G0上圖G0不是連通圖,有兩個(gè)連通分量.強(qiáng)連通圖——有向圖中,如果對(duì)每一對(duì)Vi,VjV,ViVj,從Vi到Vj
和從Vj到Vi都存在路徑,則稱G是強(qiáng)連通圖強(qiáng)連通圖356245136非強(qiáng)連通圖7.1圖的定義和術(shù)語(yǔ)v1v2v3v4v5v1v2v3v47.1圖的定義和術(shù)語(yǔ)上圖G1不是強(qiáng)連通圖,有兩個(gè)強(qiáng)連通分量:G1-1和G1-2v1v2v3v4圖G1v1v3v4圖G1-1v2圖G1-2有向圖中的極大強(qiáng)連通子圖稱為有向圖的強(qiáng)連通分量。7.1圖的定義和術(shù)語(yǔ)連通圖的生成樹(shù)是一個(gè)極小連通子圖。生成樹(shù)中包含圖的全部頂點(diǎn)(假定為n個(gè)),包含能夠連接起n個(gè)頂點(diǎn)的n-1條邊,使得生成樹(shù)也是一個(gè)連通圖。如上面圖G2-1為圖G2的一棵生成樹(shù)。v1v2v3v4v5圖G2v1v2v3v4v5圖G2-12023/2/425一個(gè)連通圖的生成樹(shù)是一個(gè)極小連通子圖,它含有圖中全部頂點(diǎn),但只有足以構(gòu)成一棵樹(shù)的n-1條邊。一棵有n個(gè)頂點(diǎn)的生成樹(shù)有且僅有n-1條邊。15732461573246連通圖生成樹(shù)26抽象數(shù)據(jù)類型---圖ADTGraph{
數(shù)據(jù)對(duì)象V:V是具有相同特性的數(shù)據(jù)元素的集合,稱為頂點(diǎn)集。數(shù)據(jù)關(guān)系R:R={VR}VR={<v,w>|v,wV且P(v,w),<v,w>表示從v到w的弧,謂詞P(v,w)定義了弧<v,w>的意義或信息}
基本操作P:
GraphCreat(G,,V,VR);//創(chuàng)建圖
GraphDestory(G);//銷毀圖
GraphLocateVertex(G,v);//尋找頂點(diǎn)v
GraphGetVertex(G,v);//返回頂點(diǎn)v的值
GraphPutVertex(&G,v,value);//為頂點(diǎn)v賦值
GraphFirstAdjVex(G,v);//返回v的第一個(gè)鄰接頂點(diǎn)
GraphNextAdjVex(G,v,w);//返回v的下一個(gè)鄰接頂點(diǎn)
GraphInsertVertex(G,v);//在圖中添加新頂點(diǎn)v
GraphDeleteVertex(G,v);//刪除頂點(diǎn)v及相關(guān)的弧
GraphInsertArc(G,v,w);//在圖中增加弧<v,w>
GraphDeleteArc(G,v,w);//刪除圖中v和w之間的弧
DFSTtraverse(G,v,Visit());//深度優(yōu)先遍歷
BFSTtraverse(G,v,Visit());//廣度優(yōu)先遍歷
}ADTGraph
7.2圖的存儲(chǔ)結(jié)構(gòu)
由于圖的頂點(diǎn)之間存在多對(duì)多的關(guān)系,因此,圖的存儲(chǔ)結(jié)構(gòu)相應(yīng)的比較復(fù)雜。本節(jié)我們介紹兩種最常用的存儲(chǔ)結(jié)構(gòu),鄰接矩陣表示法(數(shù)組表示法)和鄰接表表示法。十字鏈表表示法鄰接多重表表示法7.2.1鄰接矩陣表示法(數(shù)組表示法)用一個(gè)一維數(shù)組存儲(chǔ)頂點(diǎn)的信息。用一個(gè)二維數(shù)組存儲(chǔ)數(shù)據(jù)元素之間關(guān)系(邊或弧)的信息,這種表示方法我們稱之為鄰接矩陣法。7.2.1鄰接矩陣表示法(數(shù)組表示法)一、舉例說(shuō)明鄰接矩陣表示法1.有向圖v1v2v3v4圖G1v1v2v3v4邊信息數(shù)組arcsv1v2v3v4v1v2v3v4頂點(diǎn)信息數(shù)組vexs7.2.1鄰接矩陣表示法(數(shù)組表示法)v1v2v3v4圖G1v1v2v3v4邊信息數(shù)組arcsv1v2v3v4v10110v20000v30001v41000頂點(diǎn)信息數(shù)組vexs7.2.1鄰接矩陣表示法(數(shù)組表示法)v1v2v3v4圖G1v1v2v3v4邊信息數(shù)組arcsv1v2v3v4v10110v20000v30001v41000思考:(1)如何從arcs尋找v1的出度、入度,鄰接點(diǎn);(2)是否能從arcs判斷該圖是否有向圖。頂點(diǎn)信息數(shù)組vexs7.2.1鄰接矩陣表示法(數(shù)組表示法)邊信息數(shù)組arcsv1v2v3v4v10110v20000v30001v41000解答:(1)如何從arcs尋找v1的出度、入度,鄰接點(diǎn);V1行所有1的個(gè)數(shù)為v1的出度;V1列所有1的個(gè)數(shù)為v1的入度;V1行所有1對(duì)應(yīng)的下標(biāo)在vexs中對(duì)應(yīng)的頂點(diǎn)。(2)能否從arcs判斷該圖的類型,(有向圖還是無(wú)向圖)。當(dāng)arcs數(shù)組關(guān)于主對(duì)角線不對(duì)稱時(shí),可以肯定其是有向圖。否則不能判定。7.2.1鄰接矩陣表示法(數(shù)組表示法)2.無(wú)向圖v1v2v3v4v5邊信息數(shù)組arcsv1v2v3v4v5v1v2v3v4v5頂點(diǎn)信息數(shù)組vexsv1v2v3v4v5圖G27.2.1鄰接矩陣表示法(數(shù)組表示法)v1v2v3v4v5邊信息數(shù)組arcsv1v2v3v4v5v101010v210101v301011v41010001100v5頂點(diǎn)信息數(shù)組vexsv1v2v3v4v5圖G27.2.1鄰接矩陣表示法(數(shù)組表示法)思考:(1)如何從arcs尋找v1的度,鄰接點(diǎn);(2)是否能從arcs判斷該圖是否有向圖。v1v2v3v4v5邊信息數(shù)組arcsv1v2v3v4v5v101010v210101v301011v41010001100v5頂點(diǎn)信息數(shù)組vexsv1v2v3v4v5圖G27.2.1鄰接矩陣表示法(數(shù)組表示法)解答:(1)如何從arcs尋找v1的度,鄰接點(diǎn);V1行所有1的個(gè)數(shù)為v1的度;V1行所有1對(duì)應(yīng)的下標(biāo)在vexs中對(duì)應(yīng)的頂點(diǎn)。(2)能否從arcs判斷該圖的類型,(有向圖還是無(wú)向圖)。當(dāng)arcs數(shù)組關(guān)于主對(duì)角線不對(duì)稱時(shí),可以肯定其是有向圖。否則不能判定。邊信息數(shù)組arcsv1v2v3v4v5v101010v210101v301011v41010001100v57.2.1鄰接矩陣表示法(數(shù)組表示法)3.網(wǎng)v1v2v3v4v5v61555346798v1v2v3v4v5v6頂點(diǎn)信息數(shù)組vexs7.2.1鄰接矩陣表示法(數(shù)組表示法)v1v2v3v4v5v61555346798邊信息數(shù)組arcsv1v2v3v4v5v6v157v24v389v4565v5v631二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作1.存儲(chǔ)結(jié)構(gòu)為了簡(jiǎn)單起見(jiàn),我們假設(shè)頂點(diǎn)所代表數(shù)據(jù)的數(shù)據(jù)類型是字符串,如“v1”、“v2”等;考慮到頂點(diǎn)之間的邊上可能帶有權(quán)值,則鄰接矩陣的類型設(shè)為double。當(dāng)然大家可以根據(jù)應(yīng)用問(wèn)題的不同,適當(dāng)調(diào)整數(shù)據(jù)類型。structMGraph{ char*vexs[100];//存儲(chǔ)頂點(diǎn)信息
doublearcs[100][100];//存儲(chǔ)邊的信息
intvexnum,arcnum;//頂點(diǎn)數(shù)目和邊的數(shù)目};二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作圖的基本操作包括圖的初始化、查找頂點(diǎn)是否存在、查找邊是否存在、插入一個(gè)頂點(diǎn),插入一條邊,刪除一個(gè)頂點(diǎn),刪除一條邊,求頂點(diǎn)的鄰接點(diǎn)等。voidInitGraph(MGraph&mg){//圖的初始化
mg.arcnum=mg.vexnum=0;//頂點(diǎn)和邊的數(shù)目均為0 for(inti=1;i<100;i++) for(intj=1;j<100;j++) mg.arcs[i][j]=0;//各個(gè)頂點(diǎn)之間初始情況下沒(méi)有邊相連}二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作intFindVex(MGraphmg,char*vex){//查找頂點(diǎn)vex是否存在
for(inti=1;i<=mg.vexnum;i++){ if(strcmp(mg.vexs[i],vex)==0) returni;//頂點(diǎn)存在,返回i } return0;//頂點(diǎn)不存在,返回0}二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作intFindArc(MGraphmg,char*v1,char*v2){//查找邊或弧<v1,v2>是否存在
intx,y; x=FindVex(mg,v1); y=FindVex(mg,v2); if(x==0||y==0)return0;//某個(gè)頂點(diǎn)不存在,邊肯定不存在,返回0 if(mg.arcs[x][y]==1)return1;//邊存在,返回1}二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作voidInsertVex(MGraph&mg,char*vex){//插入一個(gè)頂點(diǎn)vex
if(FindVex(mg,vex)==0)//頂點(diǎn)不存在
{ mg.vexnum++;
mg.vexs[mg.vexnum]=newchar[strlen(vex)]; strcpy(mg.vexs[mg.vexnum],vex);//新頂點(diǎn)加入
}}二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作voidInsertArc(MGraph&mg,char*v1,char*v2){//插入一條邊或弧<v1,v2> intx,y; x=FindVex(mg,v1); y=FindVex(mg,v2);
if(x&&y){mg.arcs[x][y]=1; mg.arcnum++; }}二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作intFirstAdjVex(MGraphmg,intv){//在圖mg中,求頂點(diǎn)v的第一個(gè)鄰接點(diǎn) //使用頂點(diǎn)的下標(biāo)代替字符串,
//如頂點(diǎn)“v1“對(duì)應(yīng)下標(biāo)為v,則使用v代表“v1“
for(inti=1;i<=mg.vexnum;i++){if(mg.arcs[v][i]!=0) returni; } return0;//不存在鄰接點(diǎn)時(shí),返回0}二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作intNextAdjVex(MGraphmg,intv,intw){//在圖mg中,求頂點(diǎn)v的相對(duì)于頂點(diǎn)w的下一個(gè)鄰接點(diǎn)
for(inti=w+1;i<=mg.vexnum;i++) if(mg.arcs[v][i]!=0) returni; return0;}二、用c語(yǔ)言描述圖的存儲(chǔ)結(jié)構(gòu)及其操作2.基本操作對(duì)于左圖,可以用右面代碼來(lái)構(gòu)造v1v2v3v4圖G1intmain(intargc,char*argv[]){MGraphmg;InitGraph(mg);//圖的初始化
InsertVex(mg,"v1");//插入頂點(diǎn)
InsertVex(mg,"v2"); InsertVex(mg,"v3"); InsertVex(mg,"v4"); InsertArc(mg,"v1","v2");//插入邊
InsertArc(mg,"v1","v3"); InsertArc(mg,"v3","v4"); InsertArc(mg,"v4","v1");return0;}7.2.2鄰接表表示法一、舉例說(shuō)明鄰接表表示法1.有向圖v1v2v3v4圖G11v12v2^3v34v42^3^4^1^思考:根據(jù)右圖1.如何求v1的出度、入度、以v1為弧尾的鄰接點(diǎn)?2.如何求圖中共有幾條邊?7.2.2鄰接表表示法一、舉例說(shuō)明鄰接表表示法1.有向圖1v12v2^3v34v42^3^4^1^思考:1.如何求v1的出度、入度、以v1為弧尾的鄰接點(diǎn)?解答:v1的出度是v1后面鏈表的長(zhǎng)度。
V1的入度為所有鏈表中數(shù)據(jù)域?yàn)?的結(jié)點(diǎn)的個(gè)數(shù)。V1的鄰接點(diǎn)就是v1后鏈表上的所有結(jié)點(diǎn)。2.如何求圖中共有幾條邊?所有鏈表中所有結(jié)點(diǎn)的個(gè)數(shù)。7.2.2鄰接表表示法一、舉例說(shuō)明鄰接表表示法2.無(wú)向圖1v12v23v34v45v524^41v1v2v3v4v5圖G2135^25^3^23^思考:根據(jù)右圖1.如何求v1的度、v1的鄰接點(diǎn)?2.如何求圖中共有幾條邊?7.2.2鄰接表表示法一、用c語(yǔ)言描述圖的鄰接表存儲(chǔ)結(jié)構(gòu)及其操作1.存儲(chǔ)結(jié)構(gòu)從上面的例子可以看出,鄰接表中存在兩種結(jié)點(diǎn),一種是鏈表的頭結(jié)點(diǎn),用來(lái)存儲(chǔ)頂點(diǎn)信息;一種是表結(jié)點(diǎn),用來(lái)存放鄰接點(diǎn)以及邊的信息。1v12v23v34v45v524^41135^25^3^23^7.2.2鄰接表表示法一、用c語(yǔ)言描述圖的鄰接表存儲(chǔ)結(jié)構(gòu)及其操作1v12v23v34v45v524^41135^25^3^23^datafirstarc表頭結(jié)點(diǎn):頂點(diǎn)信息指向第1個(gè)鄰接點(diǎn)的指針表結(jié)點(diǎn)adjvexinfonextarc鄰接點(diǎn)邊或弧的信息(如權(quán)值)指向下一條邊或弧的結(jié)點(diǎn)7.2.2鄰接表表示法一、用c語(yǔ)言描述圖的鄰接表存儲(chǔ)結(jié)構(gòu)及其操作//表結(jié)點(diǎn)-結(jié)構(gòu)體類型structArcNode{ intadjvex;//鄰接點(diǎn)
doubleweight;//邊的信息(權(quán))
ArcNode*nextarc;//指向下一條邊的指針};7.2.2鄰接表表示法一、用c語(yǔ)言描述圖的鄰接表存儲(chǔ)結(jié)構(gòu)及其操作//頭結(jié)點(diǎn)-結(jié)構(gòu)體類型typedefstructVexNode{ chardata[5];//頂點(diǎn)信息(字符串)
ArcNode*firstarc;//指向第一條邊的指針}VexNode;//圖-結(jié)構(gòu)體類型typedefstruct{ VexNodevexs[100];//頂點(diǎn)的集合
intvexnum,arcnum;//頂點(diǎn)的數(shù)目,邊的數(shù)目}ALGraph;7.2.2鄰接表表示法一、用c語(yǔ)言描述圖的鄰接表存儲(chǔ)結(jié)構(gòu)及其操作
圖的基本操作包括圖的初始化、查找頂點(diǎn)是否存在、查找邊是否存在、插入一個(gè)頂點(diǎn),插入一條邊,刪除一個(gè)頂點(diǎn),刪除一條邊,求頂點(diǎn)的鄰接點(diǎn)等。
voidInitGraph(ALGraph&mg){//圖的初始化
mg.arcnum=mg.vexnum=0; for(inti=1;i<100;i++) { strcpy(mg.vexs[i].data,""); mg.vexs[i].firstarc=0; }}intFindVex(ALGraphmg,char*vex){//查找頂點(diǎn)vex是否存在
for(inti=1;i<=mg.vexnum;i++) if(strcmp(mg.vexs[i].data,vex)==0) returni; return0;//不存在}intFindArc(ALGraphmg,char*v,char*w){//查找邊或弧<v,w>是否存在
intv1=FindVex(mg,v); intw1=FindVex(mg,w); if(v1*w1==0)return0;//不存在
ArcNode*p=mg.vexs[v1].firstarc;//表結(jié)點(diǎn)p
while(p) { if(p->adjvex==w1)return1;//找到了
p=p->nextarc;//指向下一條邊(下一個(gè)鄰接點(diǎn)) } return0;//不存在 }voidInsertVex(ALGraph&mg,char*vex){//插入一個(gè)頂點(diǎn)vex intv=FindVex(mg,vex);
if(v!=0)return;//該頂點(diǎn)已經(jīng)存在
mg.vexnum++; strcpy(mg.vexs[mg.vexnum].data,vex);return; }voidInsertArc(ALGraph&mg,char*v1,char*v2){//插入一條邊或弧<v1,v2>
if(FindArc(mg,v1,v2)==0)//邊不存在
{//此時(shí)我們假定頂點(diǎn)已經(jīng)存在
ArcNode*p=newArcNode;//定義表結(jié)點(diǎn)
//生成一個(gè)新的結(jié)點(diǎn)p->adjvex=FindVex(mg,v2); p->nextarc=0; p->weight=0;
intv=FindVex(mg,v1);
//新結(jié)點(diǎn)作為鏈表第一個(gè)結(jié)點(diǎn)
p->nextarc=mg.vexs[v].firstarc; mg.vexs[v].firstarc=p; }}intFirstAdjVex(ALGraphmg,intv){//在圖mg中,求頂點(diǎn)v的第一個(gè)鄰接點(diǎn)
//使用頂點(diǎn)的下標(biāo)代替字符串,如頂點(diǎn)“v1”對(duì)應(yīng)下標(biāo)為v,//則使用v代表“v1”,假定v存在
if(mg.vexs[v].firstarc!=0) returnmg.vexs[v].firstarc->adjvex; elsereturn0; }intNextAdjVex(ALGraphmg,intv,intw
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學(xué)《中學(xué)思想政治課專題》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《學(xué)校德育理論與實(shí)踐》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年二建機(jī)電預(yù)測(cè)A卷講義(可打印版)
- 枸杞種植公司虧損原因分析報(bào)告模板
- 福建師范大學(xué)《山水畫基礎(chǔ)二》2022-2023學(xué)年第一學(xué)期期末試卷
- 浙江省杭州市2018年中考英語(yǔ)真題(含答案)
- 光伏項(xiàng)目承諾書
- 操作系統(tǒng) 課件 第5、6章 存儲(chǔ)管理、文件系統(tǒng)
- 2024年黔東南客運(yùn)資格證題庫(kù)
- 2024年西寧客車從業(yè)資格證考試試題答案
- 期中測(cè)試卷(1-4單元)(試題)-2024-2025學(xué)年人教版數(shù)學(xué)四年級(jí)上冊(cè)
- 應(yīng)用文寫作+以“A+Clean-up+Activity”為題給學(xué)校英語(yǔ)報(bào)寫一篇新聞報(bào)道+講義 高二上學(xué)期月考英語(yǔ)試題
- 校園反詐騙課件
- 期中測(cè)試卷-2024-2025學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)上冊(cè)
- 2024-2030年中國(guó)工業(yè)脫水機(jī)行業(yè)發(fā)展?fàn)顩r及投資方向分析報(bào)告
- 網(wǎng)絡(luò)傳播法導(dǎo)論(第2版)課件 第五章 侵害名譽(yù)權(quán)
- 環(huán)評(píng)手續(xù)轉(zhuǎn)讓協(xié)議(2篇)
- 胸外科快速康復(fù)護(hù)理課件
- 陽(yáng)光食品APP培訓(xùn)考核題庫(kù)(含答案)食品生產(chǎn)企業(yè)端
- 歐洲文明與世界遺產(chǎn)智慧樹(shù)知到期末考試答案章節(jié)答案2024年廣東工業(yè)大學(xué)
- 《硬措施》解析培訓(xùn)課件-2024年
評(píng)論
0/150
提交評(píng)論