【问题描述】
 很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。
【基本要求】
 以邻接多重表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。
【测试数据】
 教科书图7.33。暂时忽略里程,起点为北京。
【实现提示】
 设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,由它们的编号分别为1,2,…n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制。注意,生成树的边是有向边,端点顺序不能颠倒。
【选作内容】
(1)    借助于栈类型(自己定义和实现),用非递归算法实
现深度优先遍历。
(2)    以邻接表为存储结构,建立深度优先生成树和
广度优先生成树,再按凹入表或树形打印生成树。
(3)    正如习题7.8提示中所分析的那样,图的路径
遍历要比结点遍历具有更为广泛的应用。再写一个路径遍历算法,求出从北京到广州中途不过郑州的所有简单路径及其里程。