?? graph1.h
字號:
//圖的相關數據類型的定義graph1.h
//最多頂點數
const int MaxV=10;
//定義鄰接表中的邊結點類型
struct edgenode {
int adjvex; //鄰接點域
int weight; //權值域
edgenode* next; //指向下一個邊結點的鏈域
edgenode(){}
edgenode(int d,int w):adjvex(d),weight(w),next(NULL){}
};
struct Top //頂點數組的元素類型
{char data;//頂點數據
edgenode *adj;//鄰接表指針
};
struct RCW
{int row;
int col;
int weight;
};
//鄰接表的類定義
class AdjAdjoin
{private:
Top g[MaxV];//頂點數組
int size; //頂點個數
int numE; //當前邊的條數
public:
edgenode **GL;//定義鄰接表
//構造函數
AdjAdjoin() {}
//構造函數,初始化圖的鄰接表
AdjAdjoin(edgenode **gl,int n);
//判斷圖空否
bool GraphEmpty() {return size==0;}
//取當前頂點數
int NumV() {return size;}
//取當前邊數
int NumEdges() {return numE;}
//取頂點i的值
char GetValue(const int i);
//取弧<v1,v2>的權
int GetWeight(const int v1,const int v2);
//在位置pos處插入頂點V
void InsertV(const char &V);
//插入弧<v1,v2>,權為weight
void InsertEdge(const int v1,const int v2,int weight);
//刪除頂點i與頂點i相關的所有邊
void DeleteVE(const int v);
//刪除弧<v1,v2>
void DeleteEdge(const int v1,const int v2);
//刪除圖的鄰接表
void DeleteAdjoin(int n);
//建立圖
void CreatGraph(char V[],int n,RCW E[],int e);
//建立圖的鄰接表
void CreateAdjoin(int n,int k1,int k2,RCW rcw[]);
//從初始點vi出發深度優先搜索由鄰接表GL表示的圖
void dfsAdjoin(bool*& visited,int i,int n);
//從初始點vi出發廣度優先搜索由鄰接表GL表示的圖
void bfsAdjoin(bool*& visited,int i,int n);
//檢查輸入的邊序號是否越界,若越界則重輸
void Check(int n,int& i,int& j);
//對非連通圖進行深度優先搜索
void dfsAdjoin(int n);
//對非連通圖進行廣度優先搜索
void bfsAdjoin(int n);
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -