问题描述
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.
这篇关于用于打印节点的整个路径的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!