数据结构实验报告--图实验(2)

2019-08-01 23:45

#include using namespace std; #include\

extern int visited[MaxSize];

template

ALGraph::ALGraph(DataType a[], int n, int e) {

ArcNode * s; int i, j, k;

vertexNum = n; arcNum = e; for(i = 0; i < vertexNum; i++) { adjlist[i].vertex = a[i]; adjlist[i].firstedge = NULL; }

for(k = 0; k < arcNum; k++) { cout << \ cin >> i >> j; s = new ArcNode; s->adjvex = j; s->next = adjlist[i].firstedge; adjlist[i].firstedge = s; } }

template

ALGraph::~ALGraph() {

ArcNode * p = NULL;

for(int i = 0; i < vertexNum; i++) { p = adjlist[i].firstedge; while(p != NULL) { adjlist[i].firstedge = p->next; delete p; p = adjlist[i].firstedge; } } }

template

void ALGraph::DFSTraverse(int v) {

ArcNode * p = NULL; int j; cout << adjlist[v].vertex; visited[v] = 1;

p = adjlist[v].firstedge; while(p != NULL) { j = p->adjvex; if(visited[j] == 0) DFSTraverse(j); p = p->next; } }

template

void ALGraph::BFSTraverse(int v) {

int Q[MaxSize];

int front = -1, rear = -1; ArcNode * p = NULL;

cout << adjlist[v].vertex; visited[v] = 1; Q[++rear] = v; while(front != rear) { v = Q[++front]; p = adjlist[v].firstedge; while(p != NULL) { int j = p->adjvex; if(visited[j] == 0){ cout << adjlist[j].vertex; visited[j] = 1; Q[++rear] = j; } p = p->next; } }

}

ALGraph_main.cpp

#include using namespace std; #include\int visited[MaxSize] = {0};

int main()

{

char ch[] = {'A','B','C','D','E'}; int i;

ALGraph ALG(ch, 5, 6); for(i = 0; i < MaxSize; i++) visited[i] = 0;

cout << \ ALG.DFSTraverse(0); cout << endl;

for(i = 0; i < MaxSize; i++) visited[i] = 0;

cout << \ ALG.BFSTraverse(0); cout << endl; return 0; }

4. 运行与调试

5. 总结与心得

通过该实验,掌握了图的邻接表存储结构


数据结构实验报告--图实验(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:土方处置费用文件

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: