第一次接触树,通过学习整理了一下内容: 基本概念 定义:树形结构是一种非线性结构,它的特点是:每个结点最多只有一个前驱,但可以有多个后继。 如图我们可以做以下解释 双亲和孩子 : 若a是b的前驱,则称a是b的双亲,b是a的孩子。 兄弟: 若b和c有共同的前驱,则称b和c互为兄弟。 分支结点和终端结点 ...
分类:
其他好文 时间:
2021-02-09 11:52:57
阅读次数:
0
题目地址:从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 题目示例 输入: {5,4,#,3,#,2,#,1} 返回值: [5,4,3,2,1] 解法分析 本题考查二叉树的广度遍历,可以借助队列先进先出的特点来保存结点。 代码 1 function PrintF ...
分类:
其他好文 时间:
2021-02-08 12:28:36
阅读次数:
0
剑指 Offer 36. 二叉搜索树与双向链表 Offer_36 题目描述 题解分析 本题考查的是二叉树的中序遍历以及二叉排序树的特征(二叉排序树的中序遍历序列是升序序列) 利用排序二叉树中序遍历的性质,可以设置一个前置指针和当前指针。 再遍历完当前结点的所有左子树后,可以得到一个数据值仅次与当前结 ...
分类:
编程语言 时间:
2021-02-05 10:52:38
阅读次数:
0
所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历方式分别为:先序遍历、中序遍历、后序遍历。二叉树前序遍历:根-> 左-> 右;二叉树中序遍历:左->... ...
分类:
其他好文 时间:
2021-02-02 10:39:44
阅读次数:
0
题目 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。 每个节点都有一个分数(均为正整数),记第i个节点的分数为$d_i$,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的 ...
分类:
其他好文 时间:
2021-02-01 12:24:58
阅读次数:
0
/** * C++ 语言: 二叉查找树 * * @author skywang * @date 2013/11/07 */ #ifndef _BINARY_SEARCH_TREE_HPP_ #define _BINARY_SEARCH_TREE_HPP_ #include <iomanip> #in ...
分类:
编程语言 时间:
2021-02-01 11:49:33
阅读次数:
0
下面直接上代码*(我是直接用的for循环初始化开始做的,也可以使用递归解决)* 这是树节点类 package com.edu.dataStructure.treeDemo; import java.util.*; /** * <p> * 自己创建的树节点 * </P> * */ public cla ...
分类:
编程语言 时间:
2021-01-30 12:16:45
阅读次数:
0
题意 从上到下打印二叉树的每一行,最后返回一个层序遍历的序列 思路 使用队列作为辅助工具来进行层序遍历,都存储到一个vector里面返回即可 代码 class Solution { public: vector<int> levelOrder(TreeNode* root) { if(!root) ...
分类:
其他好文 时间:
2021-01-30 12:09:44
阅读次数:
0
题意 将一个二叉树转换为它的镜像树 思路 很容易想到镜像树是要交换左右孩子,而且是递归式的,也就是说还要对它的左孩子和右孩子这么做。 本质是对遍历算法的理解,显然这里是用后序遍历比较合理的,后序遍历是左右根的顺序,也就是遍历到当前根结点的时候左右子树都已经遍历过也处理好了(翻转为镜像) 代码 cla ...
分类:
其他好文 时间:
2021-01-29 12:07:31
阅读次数:
0
一、实验目的 1、了解文件的概念。 2、掌握线性链表的插入、删除等算法。 3、掌握Huffman树的概念及构造方法。 4、掌握二叉树的存储结构及遍历算法。 5、利用Huffman树及Huffman编码,掌握实现文件压缩的一般原理。 二、设备与环境 微型计算机、Windows系列操作系统 、Visua ...
分类:
编程语言 时间:
2021-01-27 13:40:41
阅读次数:
0