鄰接矩陣深度與廣度優先遍歷演算法(c++實現)
//標頭檔案 adjmwgraph.h
#ifndef adjmwgraph_h
#define adjmwgraph_h
class adjmwgraph
int numofvertices()
int numofedges()
vert getvalue(const int i);
int getweight(const int v1,const int v2);
void insertvertex(const vert & vertex);
void insertedge(const int v1,const int v2,int weight);
void deletevertex(const int i);
void deleteedge(const int v1,const int v2);
int getfirstneighbor(const int v);
int getnextneighbor(const int v1,const int v2);
void depthfirstsearch(const int v,int visited,void visit(vert item));
void broadfirstsearch(const int v,int visited,void visit(vert item));
void depthfirstsearch(void visit(vert item));
void broadfirstsearch(void visit(vert item));
};adjmwgraph::adjmwgraph(const int sz)
;void creatgraph(adjmwgraph & g,datatype v,int n,rowcolweight e,int e)
;seqlist::seqlist()
seqlist::~seqlist()
int seqlist::listsize() const
int seqlist::listempty() const
int seqlist::find(datatype & item) const
datatype seqlist::delete(const int pos)
~seqqueue()
void qinsert(const datatype & item);
datatype qdelete();
datatype qfront() const;
int queueempty() const
void clearqueue()
int getsize()const
};void seqqueue::qinsert(const datatype & item)
;rowcolweight rcw=,,,,,,,,,,,};
int n=7,e=12;
creatgraph(g,a,n,rcw,e);
cout<<"當前的頂點個數為:"int *visited=new int[g.numofvertices()];
for(int i=0;icout<<"廣度優先搜尋序列為:";
for(i=0;i
深度優先遍歷(鄰接矩陣)
problem description 無向連通圖的頂點值為字元型且互不相等,採用鄰接矩陣儲存。請從儲存下標為0的頂點開始深度優先遍歷,在選取下乙個未被訪問的鄰接點時,優先選擇儲存下標小的頂點,輸出該遍歷序列。input 有多組資料,每組第一行為兩個整數n和e,表示n個頂點和e條邊 0using n...
廣度優先搜尋 鄰接矩陣
需要了解的是,圖的廣度搜尋遍歷類似於二叉樹的層次遍歷,用到了隊的操作 如下 include include define ok 1 define error 0 define true 1 define false 0 define maxvex 100typedef int datatype 設定...
檢驗深度優先和廣度優先的程式 鄰接矩陣儲存結構
圖的遍歷 對圖的搜尋就是對圖中頂點的遍歷。圖中各頂點的關係比較複雜 乙個頂點可能有多 個鄰接頂點,也可能是獨立頂點 非連通圖 為了不重複地訪問所有頂點,需設立乙個訪 問標誌陣列visited,並置其初值為false 未被訪問 遍歷時只訪問那些未被訪問過的 頂點,且在訪問後,將其訪問標誌的值改為tru...