资源简介
数据结构,使用C语言编写的求关键路径的源代码
代码片段和文件信息
#include
#include
#include
using namespace std;
#define MAX_VERTEX_NUM 20 //顶点的最大数
#define INIT_SIZE 100 //堆栈的初始化大小
#define INCREMENT 10 //堆栈的增量
#define OK 1
#define ERROR -1
//堆栈的存储结构
typedef struct{int *top;int *base;int stacksize;}Stack;
//弧结点
typedef struct ArcNode{
int adjvex;
struct ArcNode *nextarc;
int info;
}ArcNode*ArcPtr;
//顶点结点
typedef struct VNode{
char data;
ArcNode *firstarc;
}VNodeAdjList[MAX_VERTEX_NUM];
//图的存储结构
typedef struct{
AdjList vertices;
int vexnumarcnum;
}ALGraph;
int adjvex[MAX_VERTEX_NUM][MAX_VERTEX_NUM]={0};//各顶点的邻接顶点
//确定顶点在图中的位置
int LocateVex(ALGraph Gchar ch)
{
for(int i=0;i if(ch==G.vertices[i].data) return i;
return -1;
}
//创建图
void CreateGraph(ALGraph &G)
{
ArcNode *p;
char v1v2;int *jinfo;
int mn;
for(m=0;m for(n=0;n adjvex[m][n]=-1;
cout<<“Enter the number of vertices and arcs:\n“;
cin>>G.vexnum>>G.arcnum;
j=new int[G.vexnum];
cout<<“Enter the vertices:\n“;
for(int i=0;i {
cin>>G.vertices[i].data;
G.vertices[i].firstarc=NULL;
j[i]=0;
}
for(int k=0;k {
p=new ArcNode;
cout<<“Enter the arcs:\n“;
cin>>v1>>v2>>info;
m=LocateVex(Gv1);n=LocateVex(Gv2);
adjvex[m][j[m]++]=n;
p->adjvex=n;
p->info=info;
p->nextarc=G.vertices[m].firstarc;
G.vertices[m].firstarc=p;
}
}
//输出邻接表
void PrintTable(ALGraph G)
{
ArcNode *p;
cout<<“\n邻接表:\n\n“;
for(int i=0;i {
cout<“;
p=G.vertices[i].firstarc;
while(p)
{
cout<adjvex<<“-“<info<<“-->“;
p=p->nextarc;
}
cout<<“NULL“< }
cout< }
//深度优先遍历图========================================================
//第v个达顶点的第一个邻接顶点
int FirstAdjVex(ALGraph Gint v)
{
int w;
w=adjvex[v][0];
return w;
}
int pos(int a[][MAX_VERTEX_NUM]int vint w)
{
int j;
for(j=0;j {
if(a[v][j]==w)
return j;
}
return -1;
}
//第v个顶点的下一个邻接顶点
int NextAdjVex(ALGraph Gint vint w)
{
int n=pos(adjvexvw);
return adjvex[v][n+1];
}
//*************************建立堆栈相关的函数*************************
void InitStack(Stack &S)
{
S
相关资源
- 求点介数C++实现 Betweenness Centrality
- C++信号放大器+报告+源码+运行程序
- 编译原理用C++消除左递归
- C++并发编程实战pdf高清无码
- vc++变成经典小游戏源码
- Visual C++网络与数据库编程百例源代码
- 移动最小二乘法MLS基于C++代码实现
- 车牌识别系统VC++开发
- 使用C/C++读取BITMAP的内容
- C++ KTV点歌系统
- 数据结构 C语言版 第2版 严蔚敏 李冬
- 精通VC++指纹模式识别系统算法(源码
- C++学生成绩管理系统( 毕业设计)
- 用C++写的FTP客户端
- C++学生成绩管理系统97917
- c++编写的十字路口交通灯程序
- C++编写的模拟流体运动
- 禁忌搜索算法30城市TSP问题C++源代码
- 火烧连营C++版本
- C语言c++游戏源代码大全
- 数据结构与程序设计C++语言描述(中
- C++版计算器带括号dos版本
- C++ Primer 第五版 中文版+英文版+习题集
- MFC多人聊天室
- 编译原理 LR分析器 c++代码
- C++ primer 第三版习题答案
- C语言数据结构课程设计之统计C程序单
- C++实现AES、DES加密算法含MFC界面
- C++课程设计 扑克牌游戏内含2程序
- VC图像处理-用Canny算子提取边缘
评论
共有 条评论