考试做到这一题,当时写的很乱,这让我很烦,题目就是在二叉树查找某个值的结点,如果找到则输出该节点的所有祖先,那我当时想到的就是用后序遍历的非递归算法,如果找到的话,栈中的所有元素就是该节点的祖先,不过后序遍历的话需要用一个标记记录栈顶元素,第一次访问栈顶的元素的时候不出栈,第二次访问栈顶元素的时候再出栈,今天我想起来,大概写了一下代码,可能不完全正确,但是能表达我的想法了,代码如下:

typedef struct{Bitree p;//二叉树结点bool first;
}*Stack;void FindValue(Elemtype x,Bitree p){Stack S;S.push(p);//根结点压栈S.top()->first=true;p=p->lchild;while(!S.empty()){while(p!=NULL){S.push(p);S.top()->first=true;p=p->lchild;}if(S.top()->p->data=x){while(!S.empty()){S.pop();//栈里的元素就是结点的祖先,所有元素出栈}}else if(S.top()->first!=true){S.pop();}else if(S.top()->first==true){S.top()->first=false;p=S.pop()->right;}}
}

考试写的也差不多,希望老师能给个80%的分吧,嘿嘿

求二叉树某个结点的祖先相关推荐

  1. 求二叉树上结点的路径c语言版,求二叉树根到给定节点的路径设计报告.doc

    求二叉树根到给定节点的路径设计报告 题目: 求二叉树根到给定节点的路径 摘要:本程序设计题要求出二叉树的根节点到给定节点的路径,我们利用二叉树的双亲存储表示法建立二叉树,然后在树的叶子节点中找到给定的 ...

  2. 求二叉树上结点的路径

    南昌航空大学实验报告 课程名称:   数据结构A   实验名称:  实验六   二叉树及其应用 (一)        班   级:     XXX           学生姓名:      XXX   ...

  3. 求二叉树上结点的路径_剑指offer 二叉树

    二叉树的镜像(简单) 操作给定的二叉树,将其变换为源二叉树的镜像. 思路: 根节点左右节点调换位置 递归 注意判断空子树情况 二叉树的深度(简单) 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经 ...

  4. c语言实现求二叉树叶子结点个数

    通过递归求解二叉树叶子结点个数,关键在于递归结束条件的设置. main.c #include<stdio.h>//定义结点类型 typedef struct BINARYNODE {cha ...

  5. 数据结构BinaryTree实例(六):求树的结点的祖先

    所谓树的结点的祖先指的是从根节点到达该节点所经过的结点,及该结点的父结点及系列父结点.使用递归的思想,也可以使用判断,入队的非递归思想,本例直接采用递归方式解决对于树这种数据结构而言,递归是一种非常使 ...

  6. 求二叉树中结点个数代码java_求二叉树中第K层结点的个数

    一,问题描述 构建一棵二叉树(不一定是二叉查找树),求出该二叉树中第K层中的结点个数(根结点为第0层) 二,二叉树的构建 定义一个BinaryTree类来表示二叉树,二叉树BinaryTree 又是由 ...

  7. 递归求二叉树的结点总数及叶子结点总数

    一.求结点总数 1.使用1个局部变量进行计数 有的方法中将左右子树分别进行计算,需要使用到两个变量:若使用全局变量,在对多个二叉树计算节点数时结果会进行累计,不易观察,使用一个全局变量就很方便. 2. ...

  8. 求二叉树某个结点的路径

    public class Main{public static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) ...

  9. 求二叉树指定结点到根的路径c语言,二叉树根节点到叶子结点和为指定值的路径...

    题目描述 image.png 题解 解题思路与二叉树根节点到叶节点的所有路径和一题相似,都是采用递归算法.但这个题加了一点,要求保存路径到vector中. 为了保存路径,这里给递归函数传递一个vect ...

最新文章

  1. 360度看IT行业--3月12日西安工程大学讲座
  2. (8) 约瑟夫问题总结
  3. 机器学习性能改善备忘单
  4. Docker框架使用系列教程(五)容器间的链接
  5. 如何在asp.net中实现listbox item值上下移动?(转)
  6. java 调用foxmail_java邮件收发功能实现代码
  7. word2vec模型评估_NLP之文本分类:「Tf-Idf、Word2Vec和BERT」三种模型比较
  8. 通过按Enter阻止用户提交表单
  9. C++ 类的多态四(虚析构函数的重要性)
  10. 《大电机技术》期刊简介
  11. linux终端下打开pdf文件,如何从终端打开PDF文件?
  12. 航空插头的环境性能科普
  13. php-fpm 端口号,PHP-FPM 配置说明
  14. css如何将图片调成合适大小,如何利用CSS自动调整图片的大小
  15. 电动汽车充电站的最优选址matlab程序
  16. ASP.NET MVC中的身份验证
  17. linux下挂载gpt格式的移动硬盘
  18. lg显示器工厂模式怎么进入_LG液晶显示器进入工厂模式方法
  19. pdf文件 converter注册码
  20. 自从干了IT,我犯过的这些错可以绕地球一圈…

热门文章

  1. python可以自学吗-没有编程基础,可以自学Python吗?
  2. 不是python中用于开发用户界面的第三方库-Python计算生态习题(50题)
  3. 如何自学python爬虫-python爬虫学习过程:
  4. python处理数据的优势-Python的优势及应用领域
  5. python2基础教程廖雪峰云-Python 基础教程
  6. python保存两位小数的几种方法,python2保留小数
  7. grpc中监听端口添加及绑定
  8. 算法(第4版)学习笔记
  9. UVa11107 - Life Forms(后缀数组)
  10. 干货!谷歌推荐的技术能力提升指南