永发信息网

(java)有一个100000个节点的树形结构,求所有节点数大于L=3小于R=5的路径的组合,有什么效率高的方法吗?

答案:1  悬赏:10  手机版
解决时间 2021-11-18 03:11
(java)有一个100000个节点的树形结构,求所有节点数大于L=3小于R=5的路径的组合,有什么效率高的方法吗?
最佳答案
如果采用非递归算法实现二叉树的前序遍历,需要借助于栈结构。其步骤如下:
如果根节点rt为空,则返回;否则,首先将根节点压入栈中,然后迭代执行以下步骤:
1. 弹出栈顶存放的节点n,访问该节点;
2. 依次将n的右子节点和左子节点压入栈中;
3. 如果栈不为空,则返回步骤1继续执行,否则结束迭代。
其中步骤1为节点访问操作;步骤2中先将右子节点压入栈中然后再将左子节点压入,这是因为在栈的弹出操作服从先入后出的准则,根节点访问结束后需要先访问的是左子节点,所以左子节点在右子节点之后压栈;步骤3是遍历过程终止的条件。

根据上述迭代步骤,图中二叉树的遍历步骤可以分解为如下步骤,对应如图所示。
1. 将n14压栈;
2. 弹出栈顶节点,此时为n14,访问节点n14;
3. 将n14的右子节点n13和左子节点n8依次压入栈中;
4. 弹出栈顶节点,此时为n8,访问节点n8;
5. 将n8的右子节点n7和左子节点n4依次压入栈中;
6. 弹出栈顶节点,此时为n4,访问节点n4;
7. 将n4的右子节点n3和左子节点n2依次压入栈中;
8. 弹出栈顶节点,此时为n2,访问节点n2;
9. n2的右子节点为空,则将n2的左子节点n1压入栈中;
10.弹出栈顶节点,此时为n1,访问节点n1;
11.n1的左子节点为空,则将n1的右子节点n0压入栈中;
12.弹出栈顶节点,此时为n0,访问节点n0;
13.n0为叶节点,则无子节点压栈;
14.弹出栈顶节点,此时为n3,访问节点n3;
15.n3为叶节点,则无子节点压栈;
16.弹出栈顶节点,此时为n7,访问节点n7;
17.将n7的右子节点n6和左子节点n5依次压栈;
18.弹出栈顶节点,此时为n5,访问节点n5;
19.n5为叶节点,无子节点压栈;
20.弹出栈顶节点,此时为n6,访问节点n6;
21.n6为叶节点,无子节点压栈;
22.弹出栈顶节点,此时为n13,访问节点n13;
23.将n13的右子节点n11和左子节点n12依次压栈;
24.弹出栈顶节点,此时为n12,访问节点n12;
25.n12为叶节点,无子节点压栈;
26.弹出栈顶节点,此时为n11,访问节点n11;
27.将n11的右子节点n10和左子节点n9依次压入栈中;
28.弹出栈顶节点,此时为n9,访问节点n9;
29.n9为叶节点,则无子节点压栈;
30.弹出栈顶节点,此时为n10,访问节点n10;
31.n10为叶节点,则无子节点压栈;
32.栈空,遍历过程结束。

图 二叉树前序遍历算法栈结构动态过程
迭代过称中利用了栈结构,图示的栈结构中栈的大小是固定的,事实上在实现时预先设定好栈的大小并不容易,所以在具体实现时,采用第XX章中讨论的链式栈,动态调整栈的大小。
中序遍历
第二种遍历算法称为中序遍历算法。与前序遍历算法相比,中序遍历算法首先访问节点的左子树,然后访问节点自身,最后访问节点的右子树。可见,节点自身是在访问左右子树中间访问的,顾称之为中序。图中的二叉树的中序遍历结果为:
追问问题在于,这里的树形结构不一定是二叉树,有可能有的节点有3个或更多子节点,唯一可以确定的是每个节点至多有1个父节点
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1亿平方厘米的面积有多大?具体说明
求传教士那个“杀犹太人,我不是”和年轻时想
琼海大印经典花园到美兰机场高铁站怎么走
法国舜邑酒庄在法国那个地方?
假设中美发生贸易战,平民怎么办
河南人吃饭,喜欢捧着碗,蹲在家门口的地上,
今晚不是有中国和荷兰的比赛吗
云南网红娟子用的什么音响设备
大富翁8简体 中文版(迅雷下载)
前马庄村地址好找么,我有些事要过去,
魔发秀专业烫染吧地址在哪,我要去那里办事,
容声四门风冷冰箱风道堵是什么原因。麻烦明白
便民理发店地址好找么,我有些事要过去,
天生没有头发,,可以植发吗?
明年省考,准备备考,现在学的话早还是晚,有
推荐资讯
ug10.0出工程图时怎样摆正零件
315÷[(85一78)x9]用简便方法
绿萝土培用什么土
栋的组词有哪些的
“酒矸倘卖无”是什么意思?有何来历?
捷马电轿是不是真的货
NH3(g)+CO2(g)=NH3COONH4(S),产物是固体,反
为什么移动GSM信号现在那么差
以前不打鼾的人开始打鼾了是为什么
丰田荣放二点零排量爬山路够不够力
2016年上海菊花观后感
什么是欧盟,什么是欧洲共同体
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?