資源簡介
全集內容結構如下:
├─圖
│ ├─關鍵路徑(有向無環圖及其應用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? {
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? {
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? {
scanf(“%s%s“v1.namev2.name);
i?=?LocateVex(Gv1);
j?=?LocateVex(Gv2);
e.info?=?NULL;//待插入的表結點的數據域賦值,設圖無?。ㄟ叄┬畔?br/> 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? {
InputFromFile(fG.vertices[i].data);
G.vertices[i].firstarc?=?NULL;
}
fscanf(f“%d“&G.arcnum);
for?(k?=?0;?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)\li
?????文件????????1784??2012-05-27?16:25??數據結構\圖\關鍵路徑(有向無環圖及其應用2)\li
?????文件?????????717??2012-10-01?20:33??數據結構\圖\關鍵路徑(有向無環圖及其應用2)\li
?????文件?????????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??數據結構\圖\圖的關節點\li
?????文件????????1784??2012-05-27?16:25??數據結構\圖\圖的關節點\li
?????文件?????????717??2012-10-01?20:33??數據結構\圖\圖的關節點\li
?????文件?????????699??2012-09-03?13:01??數據結構\圖\圖的關節點\Status.h
............此處省略391個文件信息
評論
共有 條評論