我试图找出如何获取从二进制树上的根到给定节点的路径.
它不是二叉搜索树.
每个非叶子节点只有两个指向其子节点的指针.
按顺序,预订,后订单遍历不起作用.
我曾尝试做预购,但无法弄清楚如何.例如,我们有一个二叉树:它不是二叉搜索树.我们使用排序顺序节点来更容易地找到路径.
1
/ \
2 3
/ \ / \
4 5 6 7
Run Code Online (Sandbox Code Playgroud)
我们想要找到1到7的路径:
通过预购,我们有:
1 -> 2 -> 4 -> 5 -> 3 -> 6 -> 7
Run Code Online (Sandbox Code Playgroud)
从流程中,我们得到路径从1 - > 7,其上包含所有节点.
显然,它不应该.
任何帮助都非常感谢.
The function has a problem:
void myAllo(int mySize, char *myChar )
{
myChar = new char[mySize];
}
Run Code Online (Sandbox Code Playgroud)
堆分配是否会从myAllo()?返回?我不这么认为,因为指向的内存myChar将在myAllo返回时被释放.
对 ?
欢迎任何评论.
谢谢
如何在VMS上列出历史命令?
在linx上,我们可以使用"历史".
我在VMS上找不到相应的命令.
任何帮助将不胜感激.
谢谢
这个功能有一些问题吗?
unsigned long factorial(unsigned long m)
{
return (m == 0) ? 1 : m * factorial(m - 1);
}
Run Code Online (Sandbox Code Playgroud)
如果我添加另一个功能:
int myCombina(int q, int p)
{
return factorial(q) / ( factorial(q) * factorial(q-p) );
}
Run Code Online (Sandbox Code Playgroud)
这个myCombina()效率不高,因为应该取消最大公约数以找到组合.
max(factorial(q),factorial(qp))可以被取消.我们只需要计算qx(q-1)... x(q -k +1).
还有其他问题吗?
欢迎任何评论.
谢谢