社区
数据结构与算法
帖子详情
关于二叉树几个题目。
Brightzliu
2006-12-11 02:31:48
1.已知非空二叉树采用二叉链表存储结构,根结点为T。请写出非递归算法,该算法打印数据信息为item的结点的所有祖先结点。假设数据信息为item的结点不多余一个。
2.已知具有n个结点的二叉树的前序序列和中序序列分别问PREOD[0...n-1]与INOD[0...n-1],并且各结点的数据值均不相同。试写一非递归算法生成二叉树的二叉链表结构。
...全文
264
3
打赏
收藏
关于二叉树几个题目。
1.已知非空二叉树采用二叉链表存储结构,根结点为T。请写出非递归算法,该算法打印数据信息为item的结点的所有祖先结点。假设数据信息为item的结点不多余一个。 2.已知具有n个结点的二叉树的前序序列和中序序列分别问PREOD[0...n-1]与INOD[0...n-1],并且各结点的数据值均不相同。试写一非递归算法生成二叉树的二叉链表结构。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chinaaaaaa
2006-12-12
打赏
举报
回复
第一题的代码, 写得不是很好, 你参考吧, 关键是设置标志位与堆栈的操作
void ancestor(node* root, int item){
if(root == NULL)
return;
int ns = 0; //栈顶指针
node* p = root;
stack[ns] = p; //保存遍历路径
color[ns++] = 0; //0 表示未检测, 1表示左子树被检测,2表示左右都被检测
while(1){
if(p->value == item){
print();
return;
}
if(p->lchild != NULL && (color[ns-1] < 1)){
color[ns-1] = 1;
p = p->lchild;
stack[ns] = p;
color[ns++] = 0;
continue;
}
if(p->rchild != NULL && (color[ns-1] < 2)){
color[ns-1] = 2;
p = p->rchild;
stack[ns] = p;
color[ns++] = 0;
continue;
}
if(ns == 0)
return;
p = stack[--ns];
}
}
LiChenYue
2006-12-11
打赏
举报
回复
1.已知非空二叉树采用二叉链表存储结构,根结点为T。请写出非递归算法,该算法打印数据信息为item的结点 | 的所有祖先结点。假设数据信息为item的结点不多余一个。
|
是树吧?----| 采用遍历。
LiChenYue
2006-12-11
打赏
举报
回复
1.已知非空二叉树采用二叉链表存储结构,根结点为T。请写出非递归算法,该算法打印数据信息为item的结点| 的所有祖先结点。假设数据信息为item的结点不多余一个。
|
是树吧?----| 采用遍历。
2.已知具有n个结点的二叉树的前序序列和中序序列分别问PREOD[0...n-1]与INOD[0...n-1],并且各结点的数据值均不相同。试写一非递归算法生成二叉树的二叉链表结构。
我只知道递归的,书上有,COPY一下啦!
几个
二叉树
和队列的
题目
前言 出不了门,在家做题
二叉树
的遍历 分别用前中后三种遍历方式,先递归再循环,首先第一个是数的定义。 function TreeNode = (val) => { this.val = val; this.left = null; this.right = null; } 前序 const preOrder = (root) => { if(!root) retur...
几个
二叉树
和二叉搜索树的
题目
前言 跟着上一篇走。。。 对称
二叉树
首先用递归实现 function mirrior(root) { function help(r1, r2) { if (!r1 && !r2) return true; if (!r1 || !r2 || r1.val !== r2.val) return false; return help(r1.left, r...
【leetcode】
二叉树
的
几个
重要的递归
题目
汇总附详细的解题思路
题目
描述 leetcode传送门 给定一个
二叉树
, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下
二叉树
: root = [3,5,1,6,2,0,8,null,null,7,4] 示例 1: 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出:
手撕链式
二叉树
(二)—【C语言】
玩转链式
二叉树
C语言
二叉树
oj练习题
学习完
二叉树
,就要做练习题。
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章