题目:在二叉树中查找值为x的节点,试编写算法打印值为x的节点的所有祖先,假设x的值不多于一个。
分析:
        这里我们采用后序遍历(非递归),因为在我们遇到x之前我们会把它的祖先节点全部入栈,当我们找到x时,再依次取出栈中元素
代码如下:

struct biTree {char data;struct biTree *lchild;struct biTree *rchild;
};
struct Stack {biTree *arr;int len;int top;
};
#include <stdio.h>
#include <stdlib.h>
void findAllAncestor(biTree *T, Stack *s, char x) {struct biTree *p = T;struct biTree *r = (struct biTree *)malloc(sizeof(struct biTree));struct biTree *tp = (struct biTree *)malloc(sizeof(struct biTree));bool pushS(Stack *, biTree*);bool pop(Stack *);biTree *top(Stack *);//返回得是一个指针bool empty(Stack *);while (p || !empty(s)) {if (p) {//一路将所有左孩子入栈pushS(s, p);p = p->lchild;}else {//没有左孩子,p = top(s);if (p->rchild && p != r) {//将右子树的所有左孩子入栈r = p;p = p->rchild;}else {//当既

查找某节点的所有祖先☆相关推荐

  1. js进阶 11-16 jquery如何查找元素的父亲、祖先和子代、后代

    js进阶 11-16 jquery如何查找元素的父亲.祖先和子代.后代 一.总结 一句话总结:过滤或者查找的方法里面可以带参数进行进一步的选择. 1.parent()和parents()方法的区别是什 ...

  2. jQuery 查找元素节点

    jQuery.parent(expr)          //找父元素 jQuery.parents(expr)         //找到所有祖先元素,不限于父元素 jQuery.children(e ...

  3. 二十六、二叉树--查找指定节点

    一.通过前中后序遍历查找指定节点 请编写前序查找,中序查找和后序查找的方法. 并分别使用三种查找方式,查找 heroNO = 5 的节点 并分析各种查找方式,分别比较了多少次 思路分析图解 二.代码实 ...

  4. js 查找树节点 数组去重

    //查找树节点function findData(curOrg, id) {var array = [];if ((typeof curOrg == 'object') && (cur ...

  5. C#用xpath查找某节点

    C#用xpath查找某节点 从根节点一直下来的相对路径才能确定Xpath的写法. /root/<节点1>/<节点2>//<@属性> Xpath是功能很强大的,但是也 ...

  6. C语言二叉树一个节点的所有祖先节点(附完整源码)

    C语言二叉树一个节点的所有祖先节点 一个节点的所有祖先节点 C语言二叉树一个节点的所有祖先节点完整源码(定义,实现,main函数测试) 一个节点的所有祖先节点 Given a binary Tree: ...

  7. javafx查找子节点_JavaFX技巧29:使布局忽略不可见的节点

    javafx查找子节点 在我仍在Swing中实现UI的时候,我曾经是MigLayout的忠实拥护者("一个布局管理者来统治所有这些,对吗Mikael?"). 我真正喜欢的功能之一是 ...

  8. 微信小程序 查找兄弟节点_使用C ++程序在链接列表中查找节点

    微信小程序 查找兄弟节点 Given a linked list and an integer N, you need to find and return index where N is pres ...

  9. LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个正整数 n ,它表示一个 有向无环图 中节点的数目,节点编号为 0 到 n - 1 (包括两者). 给你一个二维整数数组 edges ,其中 ed ...

最新文章

  1. ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0
  2. python错误代码40035_Python 创建XML
  3. php开发支持的文件类型整理
  4. linux脚本重启进程,linux下通过脚本实现自动重启程序
  5. 如何使用ActionScript来检测用户的操作系统种类及浏览器类型
  6. ubuntu 通过 海康sdk调用摄像头抓图片
  7. Jira filter subscribe issues
  8. android使碎片切换界面,玩转Android中的碎片Fragment
  9. 数据库高可用 MHA 搭建手册
  10. python第三方插件pip是什么_Python怎么安装第三方模块?
  11. 【RobotStudio学习笔记】(一)软件的安装与初步测试
  12. java.io.tmpdir
  13. Gmaill和MSN 8.0备忘
  14. shell 截取文件名及扩展名
  15. 2022年固定资产管理系统的概况
  16. 用python写一个倒计时器
  17. 基于autojs7的皮皮虾极速版辅助
  18. 计算机工程中级职称怎么考,以前中级职称是要考什么计算机-计算机软考中级职称哪个好考...
  19. HotDB——布式事务数据库中不同数据库表对象的类型设计准测
  20. 转载:与其亡羊补牢,不如血战群狼。——2005年中兴针对华为将展开全面攻击的预测

热门文章

  1. Java 读书笔记 (十二) Java Character 类
  2. overridePendingTransition介绍
  3. 【转载】C++知识库内容精选 尽览所有核心技术点
  4. 企业库(V4.1)入门学习手记
  5. vue使用Echart跟随窗口大小改变而重新绘制时出现读取窗口大小不及时的问题
  6. Vue.set()详解
  7. [React] 尚硅谷 -- 学习笔记(四)
  8. [MongoDB] MongoDB的安装以及问题
  9. Tips--解决安装Multisim时出现No software will be installed or removed无法安装的问题
  10. numpy库中的mat和array使用小结