前言 树的前中后序遍历 是根据前中后序的顺序来查找,找到了则弹出。 正文 节点模型: public class HeroNode { private int no; private string name; private HeroNode left; private HeroNode right; ...
分类:
编程语言 时间:
2020-07-06 14:41:50
阅读次数:
69
前言 理论文章: 直接看百度百科。 这个比较简单,直接放c#代码。 正文 建立节点模型: public class HeroNode { private int no; private string name; private HeroNode left; private HeroNode righ ...
分类:
编程语言 时间:
2020-07-06 13:12:08
阅读次数:
80
构建二叉树;实现前序、中序、后序遍历;两种删除节点的原则 package com.atguigu.datastructures.binarytree object BinaryTreeDemo { def main(args: Array[String]): Unit = { //先使用比较简单的方 ...
分类:
其他好文 时间:
2020-07-05 23:04:02
阅读次数:
76
题目信息 时间: 2019-07-04 题目链接:Leetcode tag: 二叉树 层序遍历 后序遍历 难易程度:简单 题目描述: 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 示例: 给定二叉树 [3,9,20, ...
分类:
其他好文 时间:
2020-07-05 17:35:56
阅读次数:
68
1 数据结构的练习与巩固 2 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ...
分类:
其他好文 时间:
2020-07-04 23:03:47
阅读次数:
67
非递归 思路1 用两个栈实现后序遍历的步骤: 申请一个栈stack1,将头节点压入栈中 将stack1中元素弹出,记为temp,依次将temp的左孩子,右孩子压入stack1(如果有的话 每个从stack1中弹出的元素都压入stack2 4.不断重复步骤2,3直到stack1为空停止 5.从stac ...
分类:
其他好文 时间:
2020-07-04 22:33:18
阅读次数:
64
一、二叉树的深度优先遍历 对于一颗二叉树,深度优先搜索(Depth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。 那么深度遍历有重要的三种方法。这三种方式常被用于访问树的节点,它们之间的不同在于访问每个节点的次序不同。这三种遍历分别叫做先序遍历(preorder_t ...
分类:
编程语言 时间:
2020-07-04 01:10:49
阅读次数:
70
###题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 ###题目解析 采用分治法的思想,找到根结点、左子树的序列、右子树的序列,分别判断左右子序列是否为二叉树的后序序列。 后序遍历序列的最后一个元素 ...
分类:
其他好文 时间:
2020-07-03 12:15:58
阅读次数:
60
// 树根 function Tree(data,left,right) { this.data = data this.left = left this.right = right this.leftNode = Tree.leftNode this.rightNode = Tree.rightN ...
分类:
其他好文 时间:
2020-06-29 13:49:39
阅读次数:
56
根据自己对于对于遍历的理解 前序遍历:中左右 中序遍历:左中右 后序遍历:左右中 对于前序和中序,可以只改变一些printf的顺序 所以前中后名称都是针对中间(根)的结点,所以后序遍历是不可以直接移动printf的位置的,因为对于每个结点不能直接出栈,出栈输出的时候需要判断2点 1.这个节点有没有右 ...
分类:
其他好文 时间:
2020-06-28 22:34:15
阅读次数:
72