graph.h
来自「实现了图的搜索算法」· C头文件 代码 · 共 62 行
H
62 行
#ifndef _GRAPH_H
#define _GRAPH_H
#include "node.h"
//定义图结构
class Graph{
//METHOD & IMPLEMENTATION
public:
Graph();
//////////////////////////////////////////////////////////////////////////
//图的一些基本操作
void clear();
void save(FILE* file);
void load(FILE* file);
void drawArrow(CDC* pdc, int* coor1, int* coor2, COLORREF color, int edgeW);
void display(CDC* pdc, int left, int top, int width, int height, int row, int column,
COLORREF colorV, COLORREF colorE, int edgeW, int mode);
BOOL isNewVertex(int* coor);
BOOL isNewEdge(int* coor1, int* coor2);
int getVertexID(int *coor);//根据坐标得到顶点节点的ID
void insertVertex(int *coor);//在图中插入新的节点
void insertEdge(int *coor1, int* coor2);//在图中插入新的边
void deleteVertex(int* coor);
void deleteEdge(int* coor1, int* coor2);
private:
void deleteVertex(int index);
void deleteEdge(int id1, int id2);
void insertOpen(int vnode);
void updateOpen();
float A_star_h(int n, int end);//A*算法中的启发函数
//VARIABLE
public:
VertexContainer m_vertexs;
int m_nVertexNum;
int m_nEdgeNum;
//////////////////////////////////////////////////////////////////////////
//图的搜索算法
private:
void clearVertexFlag();
public:
BOOL DFS(int start, int end, Graph& tree);
BOOL BFS(int start, int end, Graph& tree);
BOOL Dijkstra(int start, int end, Graph& tree);
BOOL A_star(int start, int end, Graph& tree);
BOOL DFS(int* coor1, int* coor2, Graph& tree);//深度优先搜索算法
BOOL BFS(int* coor1, int* coor2, Graph& tree);//广度优先搜索算法
INT_DEQUE m_open;//开表
INT_DEQUE m_close;//毕表
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?