有高手没?
//名称:深度递归访问 DFS
//功能:对某节点深度遍历图 递归
//参数:要被深度的 DATA_list 地址
// 要被深度的 数组 int 地址
//作者:
//时间:2011年3月27日 2:37:50
//版本:0.0.1
//备注:这是才是我写图的用意
void DFS(DATA_list *travel,int i){
gha p = NULL;
p = travel->database[i].fist_next;
//visit函数 可以在此处修改遍历规则
cout<<travel->database[i].data<<"";
travel->travel[i] = 1;//标记为访问
//深度访问
while(p != NULL){
if(travel->travel[p->index] !=1){
DFS(travel,p->index);
}//没访问进行访问
p = p->next;//下一个
}
}
//名称:深度总算法 travel_DFS
//功能:对每一个节点深度
//参数:要被深度的 DATA_list 地址
//作者:
//时间:2011年3月27日 2:40:01
//版本0.0.1
//备注:嗯!标识数组用的还好
void travel_DFS(DATA_list *travel_data){
int i=0;
if((travel_data->travel = (int*)malloc(travel_data->zonenow)) == NULL){
cout<<"申请不到空间,请求退出!"<<endl;
getch();
exit(1);
}
for(i=0;i<travel_data->zonenow;i++){
travel_data->travel[0] = 0;
}//置 0
for(i=0;i<travel_data->zonenow;i++){
DFS(travel_data,i);
}//深度访问
return;
}
//名称:深度递归访问 DFS
//功能:对某节点深度遍历图 递归
//参数:要被深度的 DATA_list 地址
// 要被深度的 数组 int 地址
//作者:
//时间:2011年3月27日 2:37:50
//版本:0.0.1
//备注:这是才是我写图的用意
void DFS(DATA_list *travel,int i){
gha p = NULL;
p = travel->database[i].fist_next;
//visit函数 可以在此处修改遍历规则
cout<<travel->database[i].data<<"";
travel->travel[i] = 1;//标记为访问
//深度访问
while(p != NULL){
if(travel->travel[p->index] !=1){
DFS(travel,p->index);
}//没访问进行访问
p = p->next;//下一个
}
}
//名称:深度总算法 travel_DFS
//功能:对每一个节点深度
//参数:要被深度的 DATA_list 地址
//作者:
//时间:2011年3月27日 2:40:01
//版本0.0.1
//备注:嗯!标识数组用的还好
void travel_DFS(DATA_list *travel_data){
int i=0;
if((travel_data->travel = (int*)malloc(travel_data->zonenow)) == NULL){
cout<<"申请不到空间,请求退出!"<<endl;
getch();
exit(1);
}
for(i=0;i<travel_data->zonenow;i++){
travel_data->travel[0] = 0;
}//置 0
for(i=0;i<travel_data->zonenow;i++){
DFS(travel_data,i);
}//深度访问
return;
}