銆婃暟鎹粨鏋勫疄楠屼笌瀹炶鏁欑▼(绗?鐗?銆嬬▼搴忎唬鐮?- 鐧惧害鏂囧簱

d.cd[ --d.start ] = _9__; c = f; ___10___; }

__11_____= d; }

printf( \输出huffman编码:\\n\ ); for( i = 0; i < n; i++ ) {

printf( \

for( k = hcd[i].start; k < n; k++ ) printf(\%c\ printf( \ ); } }

52

实验9 图的基本操作

四、参考程序

程序1:题1 与题2 图基本操作函数及其调用 #include #include

#include #define MAX 30 /* 图中最多顶点数 */ typedef struct node { /* 邻接表中链表的结点类型 */ int vno; /* 邻接顶点的顶点序号 */ struct node *next;

/* 后继邻接顶点 */

/* 邻接表类型 */

}edgeNode;

typedef edgeNode *lgraph[MAX];

typedef int mgraph[MAX][MAX]; /* 邻接矩阵类型 */ int visited[MAX]; /* 访问标志 */ int queue[MAX]; /* 广度优先遍历存储队列 */

int creat_graph( lgraph lg, mgraph mg ) /* 输入无向图的边, 建立图的邻接表, 邻接矩阵 */ {

int vn, en, k, i, j;

edgeNode *p;

printf( \邻接表方式建图\\n\ while( 1 ) { /* 输入图的顶点数, 边数 */

vn = en = 0;

printf( \输入图的顶点数[1-30]\\n\ );

fflush( stdin );

scanf( \%d\if( ____1_____ ) continue;

printf( \输入图的边数[0-%d]\\n\scanf( \%d\

if( en >= 0 &&___2______ ) break; }

for( k = 0; k < vn; k++ ) lg[k] =__3___; /* 置空邻接表 */

53

for( k = 0; k < vn; k++ ) /* 置空邻接矩阵 */

for( i = 0; i < vn; i++ ) _____4___; for( k = 0; k < en; ) { /* 构造邻接表, 邻接矩阵的各条边 */ i = j = -1; printf( \输入第[%d]对相连的两条边[1-%d]: \, k+1, vn ); scanf( \%d%d\, &j );

if( i < 1 || j < 1 || i > vn || j > vn ) {

printf( \输入错误, 边范围为[1-%d]\\n\, vn );

continue;

} k++; i--;

j--; p = (edgeNode *)m

>>閻忕偞娲栫槐鎴﹀礂閵婏附鐎�<<
12@gma联系客服:779662525#qq.com(#替换为@)