#include <stdio.h>
#include"graph.h"
#include"stack.h"
#define A 0
#define B 1
#define C 2
#define D 3
#define E 4
#define F 5
#define G 6
#define H 7
int init_graph(graph_t*g_p)
{
addEdge(g_p,A,B,1);
addEdge(g_p,A,C,1);
addEdge(g_p,B,D,1);
addEdge(g_p,C,E,1);
addEdge(g_p,C,F,1);
addEdge(g_p,D,G,1);
addEdge(g_p,D,H,1);
return 0;
}
void dfs(graph_t*g_p,int root,int goal)
{
int node;
int to;
stack_t*s_p;
s_p=createStack(10);
pushStack(s_p,root);
while(!isEmptyStack(s_p)){
node=popStack(s_p);
printf("%d\n",node);
if(node==goal)break;
for(to=g_p->nodes-1;to>0;to--){
if(getEdge(g_p,node,to)){
pushStack(s_p,to);
}
}
}
destroyStack(s_p);
return;
}
int main()
{
graph_t*g_p;
g_p=createGraph(8);
init_graph(g_p);
dfs(g_p,0,5);
destroyGraph(g_p);
return 0;
}
并且我是乔布斯的这个软件不能编译,请各位高手帮帮忙?
|