一道关于有向图的数据结构算法填空题,
一道关于有向图的数据结构算法填空题,
图的邻接表存储结构的类型定义如下:
typedef struct ArcNode {
intadjvex; // 该弧所指向的顶点的位置
ArcNode *nextArc; // 指向下一条弧的指针
) ArcNode;// 定义弧的结点
typedef struct {
VertexType data;// 顶点的信息
ArcNode firstArc; // 指向第一条依附该顶点的弧
} VNode,AdjList[MAX_VERTEX_NUM]; // 定义顶点数组
typedef struct {
Ad j List vertices;
intvexNum,arcNum; // 图的当前顶点数和弧数
intkind;
) ALGraph;// 邻接表类型
算法f35从有向图G中删除所有指向第i顶点的弧,请在空缺处填入合适内容,使其成为完整的算法.
void f35(ALGraph SG,int i){
int j;
ArcNode *p,*q;
for (j = 0; j p= G.vertices[j].firstArc;
while (_________①____________){
q=p;
p = p->nextArc ;
}
if (p = NULL){
if (p = G.vertices [j" .firstArc)
q->nextArc = p->nextArc;
else (② );
free (③ ) ;
G.arcNum = ___________④________________ ;
}
}
1、p != NULL && p->adjvex != i
2、G.vertices[j].firstArc = p->nextArc
3、p
4、G.arcNum = G.arcNum - 1