本文介绍了用于打印节点的整个路径的功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

3,1 //相互连接3对1

3,2

3,5

1,6

$

5,8







//用于打印路径的函数

void descendents(struct node * n)

{

if(n!= NULL)

{printf( - >%d,n->数据);

后代(n-> next1);

后代(n-> next2);

后代(n-> next3);

}

}





for 3

输出是





3-> 1-> 6-> 7-> 2-> 5-> 8















但是我想要输出这样的



3-> 1-> 6

3-> 1-> 7

3-> 2

3-> 5-> 8









//我必须做的功能有什么变化

3,1 //connected to each other directed 3 to 1
3,2
3,5
1,6
1,7
5,8



//function used to print path
void descendents(struct node * n)
{
if (n!=NULL)
{printf("-> %d",n->data);
descendents(n->next1);
descendents(n->next2);
descendents(n->next3);
}
}


for 3
output is


3->1->6->7->2->5->8







but i want output such that

3->1->6
3->1->7
3->2
3->5->8




//what changes in function i have to do

推荐答案

int descendents(struct node * n, int index = 0);//print only the n-node path

int r = 0;

while( r > -1 )
{
  r = descendents( n, r );
}





并实施它。

这将有点棘手,因为你必须以某种方式递归,但记住你去过的地方。



And implement it.
It will be a bit tricky, because you must recurse somehow BUT remember where you have been.



这篇关于用于打印节点的整个路径的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 22:34