深度优先搜索算法

#include <stdio.h> #include<stdlib.h> struct node { int vertex ; struct node *link ; }; #define TRUE 1 #define FALSE 0 typedef struct node *graph ; struct node head [ 9 ] ; int visited [ 9 ] ; void CreateGraph( int *node , int num ) { graph ptr ; graph newnode ; int from ; int to , i ; for ( i = 0 ; i < num ; i++) { from = node[ i * 2] ; to = node [ i * 2 +1 ] ; newnode = (graph)malloc(sizeof(struct node)); newnode ->vertex = to ; newnode ->link = NULL ; ptr = &(head [ from ]); while ( ptr -> link != NULL ) { ptr = ptr ->link ; } ptr->link = newnode ; } } void DFS( int v) { graph ptr ; visited[ v ] = TRUE ; printf( " v%d " ,v ) ; ptr = head[ v ].link ; while( ptr != NULL ) { if ( visited[ ptr->vertex ] == FALSE ) { DFS( ptr->vertex ) ; } ptr = ptr ->link ; } } void main() { int node[20][2]= { {1, 2}, {2, 1}, {1, 3}, {3, 1}, {2, 4}, {4, 2}, {2, 5}, {5, 2}, {3, 6}, {6, 3}, {3, 7}, {7, 3}, {4, 8}, {8, 4}, {5, 8}, {8, 5}, {6, 8}, {8, 6}, {7, 8}, {8, 7} }; CreateGraph( node , 20 ) ; puts("图的深度遍历结果:") ; DFS( 3 ) ; puts( " " ); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值