资源简介

全集内容结构如下: ├─图 │ ├─关键路径(有向无环图及其应用2) │ │ 1.txt │ │ ALGraph.cpp │ │ ALGraph.h │ │ CriticalPath.cpp │ │ CriticalPath.h │ │ InfoType.cpp │ │ InfoType.h │ │ LinkList.cpp │ │ LinkQueue.cpp │ │ LinkQueue.h │ │ Main.cpp │ │ SqStack.cpp │ │ SqStack.h │ │ Status.h │ │ VertexType.cpp │ │ VertexType.h │ │ │ ├─图的关节点 │ │ 1.txt │ │ ALGraph.cpp │ │ ALGraph.h │ │ FindArticul.cpp │ │ FindArticul.h │ │ InfoType.cpp │ │ InfoType.h │ │ LinkList.cpp │ │ LinkQueue.cpp │ │ LinkQueue.h │ │ main.cpp │ │ Status.h │ │ VertexType.cpp │ │ VertexType.h │ │ │ ├─图的数组表示法 │ │ InfoType.cpp │ │ InfoType.h │ │ Main.cpp │ │ MGraph.cpp │ │ MGraph.h │ │ Status.h │ │ VertexType.cpp │ │ VertexType.h │ │ │ ├─图的遍历 │ │ ALGraph.cpp │ │ ALGraph.h │ │ DEBUG.txt │ │ InfoType.cpp │ │ InfoType.h │ │ LinkList.cpp │ │ LinkQueue.cpp │ │ LinkQueue.h │ │ Main.cpp │ │ MGraph.cpp │ │ MGraph.h │ │ MTraverse.cpp │ │ MTraverse.h │ │ Status.h │ │ t1.txt │ │ t2.txt │ │ VertexType.cpp │ │ VertexType.h │ │ │ ├─图的邻接表存储结构 │ │ ALGraph.cpp │ │ ALGraph.h │ │ InfoType.cpp │ │ InfoType.h │ │ LinkList.cpp │ │ LinkQueue.cpp │ │ LinkQueue.h │ │ Main.cpp │ │ Status.h │ │ t1.txt │ │ t2.txt │ │ VertexType.cpp │ │ VertexType.h │ │ │ ├─最短路径(从某个源点到其余各顶点的的最短路径) │ │ 1.txt │ │ 2.txt │ │ InfoType.cpp │ │ InfoType.h │ │ Main.cpp │ │ MGraph.cpp │ │ MGraph.h │ │ ShortestPath_DIJ.cpp │ │ ShortestPath_DIJ.h │ │ Status.h │ │ VertexType.cpp │ │ VertexType.h │ │ │ └─最短路径(每一对顶点间的最短路径) │ 1.txt │ 2.txt │ InfoType.cpp │ InfoType.h │

资源截图

代码片段和文件信息

#include “ALGraph.h“

int LocateVex(ALGraph GVertexType u)
{//返回顶点在图中的位置
int i;
for (i = 0; i < G.vexnum; ++i)
{
if (strcmp(G.vertices[i].data.nameu.name) == 0)
{
return i;
}
}
return -1;
}

void CreateGraph(ALGraph &G)
{
int ijk;
VertexType v1v2;
ElemType e;
char s[4] = “边“;
printf(“请输入图的类型(有向图:0 有向网:1 无向图:2 无向网:3)“);
scanf(“%d“&G.kind);
if (G.kind < 2)
{
strcpy(s“弧“);
}
printf(“请输入图的顶点数,%s数:“s);
scanf(“%d%d“&G.vexnum&G.arcnum);
printf(“请输入%d个顶点的值(名称<%d个字符):\n“G.vexnumMAX_NAME);
for (i = 0; i < G.vexnum; ++i)
{
Input(G.vertices[i].data);
G.vertices[i].firstarc = NULL;//初始化
}
printf(“请输入%d条%s的“G.arcnums);
switch (G.kind)
{
case DG:printf(“弧头 弧尾:\n“);
break;
case DN:printf(“弧尾 弧头 弧的信息:\n“);
break;
case UDG:printf(“顶点1 顶点2:\n“);
break;
case UDN:printf(“顶点1 顶点2 边的信息:\n“);
break;
}
for (k = 0; k < G.arcnum; ++k)
{
scanf(“%s%s“v1.namev2.name);
i = LocateVex(Gv1);
j = LocateVex(Gv2);
e.info = NULL;//待插入的表结点的数据域赋值,设图无弧(边)信息
if (G.kind % 2)//网
{
InputArc(e.info);
}
e.adjvex = j;//待插入的表结点的数据域赋值
ListInsert(G.vertices[i].firstarc1e);//插在第i个顶点的表头
if (G.kind >= 2)//无向图或网,产生第2个表结点,并插入在第j个顶点的表头
{
e.adjvex = i;
ListInsert(G.vertices[j].firstarc1e);
}
}
}

void CreateFromFile(ALGraph &Gchar *filename)
{
int ijk;
VertexType v1v2;
ElemType e;
FILE *f;
f = fopen(filename“r“);
fscanf(f“%d“&G.kind);
fscanf(f“%d“&G.vexnum);
for (i = 0; i < G.vexnum; ++i)
{
InputFromFile(fG.vertices[i].data);
G.vertices[i].firstarc = NULL;
}
fscanf(f“%d“&G.arcnum);
for (k = 0; k < G.arcnum; ++k)
{
fscanf(f“%s%s“v1.namev2.name);
i = LocateVex(Gv1);
j = LocateVex(Gv2);
e.info = NULL;
if (G.kind%2)
{
InputArcFromFile(fe.info);
}
e.adjvex = j;
ListInsert(G.vertices[i].firstarc1e);
if (G.kind >= 2)
{
e.adjvex = i;
ListInsert(G.vertices[j].firstarc1e);
}
}
fclose(f);
}

VertexType GetVex(ALGraph &Gint v)
{
if (v >= G.vexnum || v < 0)
{
exit(OVERFLOW);
}
return G.vertices[v].data;
}

Status PutVex(ALGraph &GVertexType vVertexType value)
{
int k = LocateVex(Gv);
if (k != -1)
{
G.vertices[k].data = value;
return OK;
}
return ERROR;
}

int FirstAdjVex(ALGraph Gint v)
{
ArcNode *p = G.vertices[v].firstarc;
if (p)
{
return p->data.adjvex;
}
return -1;
}

Status EqualVex(ElemType aElemType b)
{
if (a.adjvex == b.adjvex)
{
return OK;
}
else
{
return ERROR;
}
}

int NextAdjVex(ALGraph Gint vint w)
{
linkList pp1;
ElemType e;
e.adjvex = w;
p = Point(G.vertices[v].firstarceEqualVexp1);
if (!p || !p->nextarc)
{
return -1;
}
return p->nextarc->data.adjvex;
}

void InsertVex(ALGraph &GVertexType v)
{
G.vertices[G.vexnum].data = v;
G.vertices[G.vexnum].firstarc = NULL;
G.vexnum++;
}

Status InsertArc(ALG

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-11-27 20:29  数据结构\
     目录           0  2012-11-27 20:24  数据结构\图\
     目录           0  2012-11-27 20:15  数据结构\图\关键路径(有向无环图及其应用2)\
     文件          98  2012-10-14 13:23  数据结构\图\关键路径(有向无环图及其应用2)\1.txt
     文件        7057  2012-10-10 08:59  数据结构\图\关键路径(有向无环图及其应用2)\ALGraph.cpp
     文件        2493  2012-10-02 08:11  数据结构\图\关键路径(有向无环图及其应用2)\ALGraph.h
     文件        3752  2012-10-14 14:26  数据结构\图\关键路径(有向无环图及其应用2)\CriticalPath.cpp
     文件         173  2012-10-14 13:19  数据结构\图\关键路径(有向无环图及其应用2)\CriticalPath.h
     文件         535  2012-10-14 12:05  数据结构\图\关键路径(有向无环图及其应用2)\InfoType.cpp
     文件         312  2012-10-14 12:05  数据结构\图\关键路径(有向无环图及其应用2)\InfoType.h
     文件        2730  2012-10-02 08:01  数据结构\图\关键路径(有向无环图及其应用2)\linkList.cpp
     文件        1784  2012-05-27 16:25  数据结构\图\关键路径(有向无环图及其应用2)\linkQueue.cpp
     文件         717  2012-10-01 20:33  数据结构\图\关键路径(有向无环图及其应用2)\linkQueue.h
     文件         182  2012-10-14 13:32  数据结构\图\关键路径(有向无环图及其应用2)\Main.cpp
     文件        1272  2012-10-09 14:27  数据结构\图\关键路径(有向无环图及其应用2)\SqStack.cpp
     文件         660  2012-10-10 08:54  数据结构\图\关键路径(有向无环图及其应用2)\SqStack.h
     文件         699  2012-09-03 13:01  数据结构\图\关键路径(有向无环图及其应用2)\Status.h
     文件         311  2012-10-14 12:01  数据结构\图\关键路径(有向无环图及其应用2)\VertexType.cpp
     文件         218  2012-10-14 12:01  数据结构\图\关键路径(有向无环图及其应用2)\VertexType.h
     目录           0  2012-11-27 20:14  数据结构\图\图的关节点\
     文件         121  2012-10-08 17:10  数据结构\图\图的关节点\1.txt
     文件        7068  2012-10-09 14:45  数据结构\图\图的关节点\ALGraph.cpp
     文件        2493  2012-10-02 08:11  数据结构\图\图的关节点\ALGraph.h
     文件        1907  2012-10-08 17:45  数据结构\图\图的关节点\FindArticul.cpp
     文件         381  2012-10-08 17:22  数据结构\图\图的关节点\FindArticul.h
     文件         420  2012-09-30 17:33  数据结构\图\图的关节点\InfoType.cpp
     文件         264  2012-09-30 16:19  数据结构\图\图的关节点\InfoType.h
     文件        2730  2012-10-02 08:01  数据结构\图\图的关节点\linkList.cpp
     文件        1784  2012-05-27 16:25  数据结构\图\图的关节点\linkQueue.cpp
     文件         717  2012-10-01 20:33  数据结构\图\图的关节点\linkQueue.h
     文件         699  2012-09-03 13:01  数据结构\图\图的关节点\Status.h
............此处省略391个文件信息

评论

共有 条评论