📄 algo0703.cpp
字号:
Status CreateDG(OLGraph &G) { // 算法7.3
// 采用十字链表存储表示,构造有向图G(G.kind=DG)。
//scanf(&G.vexnum, &G.arcnum, &IncInfo);
int i,j,k;
char v1,v2;
int IncInfo=0;
struct ArcBox *p;
scanfInit(); // 输入初始化
scanf(&G.vexnum, &G.arcnum, &IncInfo); // 自定义输入函数
for (i=0; i<G.vexnum; ++i) { // 构造表头向量
scanf(&G.xlist[i].data); // 输入顶点值
G.xlist[i].firstin = G.xlist[i].firstout = NULL; // 初始化指针
}
for (k=0; k<G.arcnum; ++k) { // 输入各弧并构造十字链表
scanf(&v1, &v2); // 输入一条弧的始点和终点
i=LocateVex(G, v1); j=LocateVex(G, v2); // 确定v1和v2在G中位置
p=(ArcBox *) malloc (sizeof (ArcBox)); // 假定有足够空间
// *p = {i, j, G.xlist[j].firstin, G.xlist[i].firstout, NULL}
// {tailvex, headvex, hlink, tlink, info}
p->tailvex=i;
p->headvex=j;
p->hlink=G.xlist[j].firstin;
p->tlink=G.xlist[j].firstout;
G.xlist[j].firstin = G.xlist[i].firstout = p;
// 完成在入弧和出弧链头的插入
//if (IncInfo) Input(*p->info); // 输入弧含有相关信息,此略!!!
}
return OK;
} // CreateDG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -