描述
给定一个无向图,在此无向图中增加一个新顶点。
输入
多组数据,每组m+2行。第一行有两个数字n和m,代表有n个顶点和m条边。顶点编号为1到n。第二行到第m+1行每行有两个数字h和k,代表边依附的两个顶点。第m+2行有一个数字f,代表新插入的顶点编号。当n和m都等于0时,输入结束
输出
每组数据输出n+1行。为增加顶点后的邻接表。每两个数字之间用空格隔开。
输入样例 1
3 2 1 2 2 3 4 2 1 1 2 4 0 0
输出样例 1
1 2 2 3 1 3 2 4 1 2 2 1 4
//基于邻接表的新顶点的增加
#include <iostream>
#define MVNum 100
using namespace std;
typedef struct ArcNode{//边信息
int p;//顶点
ArcNode *nextarc; //下一条边
}ArcNode,*ArcList;
typedef struct VNode{//顶点信息
int name;//存储顶点的代号
ArcNode *ArcList;//指向第一条依附于他的边
}VNode,AdjList[MVNum];//如果此处用链表不好随时调用某顶点的信息
typedef struct{
AdjList vertices;//图的本体
int vexnum,arcnum;//图的当前顶点数和边数
}ALGraph;
void Creat