红联Linux门户
Linux帮助

算法--数据结构--图形的邻接数组表示法

发布时间:2005-10-23 16:19:27来源:红联作者:frog
/*********************************************************
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;
}
文章评论

共有 1 条评论

  1. reing 于 2005-10-25 00:31:17发表:

    学习了