假设图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]采用邻接表存储,编写一个算法输出其邻接表。
解:直接利用邻接表的结构来输出图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]的邻接表。对应的算法如下:void DispAdj ( ALGraph * G) /输出邻接表G{ int i; ArcNode * p; printf("邻接表:\n" ) ; for ( i = 0; in;i++ ) { p- G-> adjliat[ i ] .firstarc; printf(" % 2d: ",i); while (p!= NULL) { printf( " 8 2d" ,p- > adjvex) ; p= p- > nextarc; } printf("n" ) ; }}
举一反三
- 假设图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]采用邻接表存储,设计一个算法求无向图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]的连通分量个数。
- 假设图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]采用邻接表存储,编写一个实现连通图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]的深度优先遍历(从顶点[tex=0.5x0.786]GWrvJtODhYOBa2bpkSPSFQ==[/tex]出发)的非递归算法.
- 假设图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]采用邻接表存储,设计一个算法,输出图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]中从顶点[tex=0.643x0.786]cnVwa8IjZzNSEmAUXJ8VCQ==[/tex]到[tex=0.5x0.786]GWrvJtODhYOBa2bpkSPSFQ==[/tex]的所有简单路径。
- 设计一个函数利用周游图的方法输出一个无向图[tex=0.786x1.0]LyvDGollVJ+xwurtsLcn0g==[/tex]中从顶点[tex=0.786x1.0]8w3MvouHWcBTSZ1PQdyQ+Q==[/tex]到[tex=0.786x1.071]nMxUPKIHz37baTvRKn5TQg==[/tex]的长度为[tex=0.5x0.786]BgHR5DBWke5rTEC5XEckiQ==[/tex]的简单路径,假设无向图采用邻接表存储结构。
- 已知一个有向图的邻接表,编写算法建立其逆邻接表。
内容
- 0
假设无向图采用邻接表存储,编写一个算法求连通分量的个数并输出各连通分量的顶点集。
- 1
无向图采用邻接表存储结构,编写算法输出图中各连通分量的顶点序列。
- 2
一个有向图[tex=0.786x1.0]JTRtgqQ00R3dUQzwS4iwbg==[/tex]的邻接表存储如图[tex=1.571x1.0]zBmm2MrD4QN8q4gL6oCKZg==[/tex]所示,现按深度优先搜索遍历,从顶点[tex=0.5x1.0]oYgVDn+QZqcDCRxqEZwM2A==[/tex]出发,所得到的顶点序列是什么?[img=343x182]179f94ea91456d5.png[/img]
- 3
假设一个无向图是非连通的,采用邻接表作为存储结构,试设计一个算法,输出图中各连通分量的节点序列。
- 4
有 n 个顶点的无向图,采用邻接表存储,表头结点有 ______ 个,邻接表中的结点有 ______ 个 (10.0分)