/*********************************************************
Title : graph-adjacentarray.c
Author :
Time :
Purpose : 图形的邻接数组表示法
Thread :
Comment :
Usage :
**********************************************************/
#include "stdio.h"
#include "stdlib.h"
/*=====================变量声明--variable declaration=================*/
int matrix[6][6]; /* 图形的邻接数组 */
/*=====================函数声明--function declaration=================*/
void creategraph(int *node,int num);
/*====================函数实现--function implementation================*/
/* --------------------------------------------------
Function :
Purpose : 建立图形
Arguments :
Returns :
------------------------------------------------- */
void creategraph(int *node,int num)
{
int from; /* 边线的起点 */
int to; /* 边线的终点 */
int i;
for ( i = 0; i < num; i++ ) /* 读取边线的回路 */
{
from = node[i*2]; /* 边线的起点 */
to = node[i*2+1]; /* 边线的终点 */
matrix[from][to] = 1; /* 存入图形 */
}
}
/*=========主函数: 建立图形后,将邻接数组印出==========*/
int main(int argc, char* argv[])
{
int node[12][2] = { {1, 2}, {2, 1}, /* 边线数组 */
{1, 3}, {3, 1},
{2, 3}, {3, 2},
{2, 4}, {4, 2},
{3, 5}, {5, 3},
{4, 5}, {5, 4} };
int i,j;
for ( i = 1; i <= 5; i++ )
for ( j = 1; j <= 5; j++ )
matrix[i][j] = 0; /* 清除图形邻接数组 */
creategraph(node,12); /* 建立图形 */
printf("图形的邻接数组内容:\n");
for ( i = 1; i <= 5; i++ ) {
for ( j = 1; j <= 5; j++ )
printf(" %d ",matrix[i][j]); /* 印出数组内容 */
printf("\n"); /* 换行 */
}
return 1;
}
reing 于 2005-10-25 00:31:17发表:
学习了