資源簡介
這是用鄰接鏈表作存儲結構的圖類源代碼,下面是圖類的聲明部分:
struct ArcNode //弧節點結構
{
int adjvex;
ArcNode *nextarc;
};
struct VexNode //頂點結構
{
int vexdata;
ArcNode *firstarc;
};
//鄰接鏈表圖類的聲明。
class Graph
{
private:
static string str;
bool *visited; //是否訪問標志
VexNode *adjlist; //鄰接鏈表數組
int n; //已有頂點個數
int max; //可容納的最大頂點個數
void dfs0(int v0,void visit(int& v));
void bfs0(int v0,void visit(int& v));
public:
Graph(int l); //建立一個最大頂點數為l的空圖
Graph(VexNode adjl[],int l); //構造一個由adj1表示的頂點個數為l的鄰接鏈表對象
Graph(int vex[],int arc[], int n); //以vex[]為頂點集,arc[]表示的鄰接矩陣建立圖
void instVex(int data); //插入頂點
void instArc(int v1,int v2); //插入邊
string dfs(int v0,void visit(int& v)); //深度優先遍歷
string bfs(int v0,void visit(int& v)); //廣度優先遍歷
static void func1(int& v); //遍歷時執行的函數
static void func2(int& v); //遍歷時執行的函數
static string inttostr(int v);
};

代碼片段和文件信息
/*
*?Copyright?(c)?2011計算機學院
*?All?rights?reserved.
*?
*?文件名稱:main.cpp
*?摘????要:本文件是主函數所在,主要實現對鏈接鏈表圖類的測試功能。
*?
*?當前版本:1.0
*?完成日期:2011年12月3日
*/
#include?
#include?“Graph.h“
using?namespace?std;
void?main()
{
int?vex[6]={123456};?????????
// int?arc[36]={011001?101110?110010?010011?011100?100100??};??//無向圖
????int?arc[36]={010010?000001?010101?000000?000001?000100??};??//有向圖
????Graph?g(vexarc6);
?
cout< ????cout<
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6313??2012-12-03?18:50??鄰接鏈表圖類\Graph.h
?????文件????????656??2012-12-03?18:49??鄰接鏈表圖類\main.cpp
?????文件???????4408??2011-10-25?23:19??鄰接鏈表圖類\鄰接鏈表圖類.dsp
?????文件????????532??2011-10-25?23:03??鄰接鏈表圖類\鄰接鏈表圖類.dsw
?????文件??????66560??2012-12-03?18:50??鄰接鏈表圖類\鄰接鏈表圖類.ncb
?????文件??????48640??2012-12-03?18:50??鄰接鏈表圖類\鄰接鏈表圖類.opt
?????文件???????1386??2012-12-03?18:50??鄰接鏈表圖類\鄰接鏈表圖類.plg
?????目錄??????????0??2012-12-03?18:50??鄰接鏈表圖類
-----------?---------??----------?-----??----
???????????????128495????????????????????8
- 上一篇:最小生成樹用堆+并查集進行優化
- 下一篇:計算機網絡 郵件收發 課程設計報告
評論
共有 條評論