数据结构 第5章 树与二叉树(一轮习题总结)

2024-03-16 18:04

本文主要是介绍数据结构 第5章 树与二叉树(一轮习题总结),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据结构 第5章 树与二叉树

  • 5.1 树的基本概念
  • 5.2 二叉树的概念
  • 5.3 二叉树的遍历和线索二叉树
  • 5.4 树、森林
  • 5.5 树与二叉树的应用

5.1 树的基本概念(3 4 7)
5.2 二叉树的概念(2 14 19 22)
5.3 二叉树的遍历和线索二叉树
5.4 树、森林
5.5 树与二叉树的应用

5.1 树的基本概念

  • T3
    树的路径长度:从树根到每个结点的路径长度总和
    区分:哈弗曼树的带权路径长度
  • T4
    重点理解(树的基本术语):
    度:每个结点的分支数;度>0是分支节点,度=0是叶结点/终端结点
    高度:=层数,根结点为第一层,h=1;eg:结点数为3的满二叉树h=2
    路径:两结点路径长度/树的路径长度(总和)

5.2 二叉树的概念

  • T1
    含有n个结点的完全二叉树的高度为:log(n+1)向上取整 或 logn向下取整+1
    eg:n=4,h=3
  • T2
    (判断)结点按完全二叉树层序编号的二叉树中,第i个结点的左孩子编号为2i。
    错误,可能没有左孩子,若有为2i,层序编号从1开始
  • T10 T19
    一棵完全二叉树第六层有n个叶子结点,共有多少叶子结点?(易错)
    此处有两种情况:最少(只有六层,第六层不满)、最多(有七层,第六层满第七层不满)
  • T14
    二叉树/完全二叉树的特点:n0=n2+1
    完全二叉树的特点:n1=0或1
    (以上结论,常用于:根据叶结点,计算完全二叉树的结点数)

5.3 二叉树的遍历和线索二叉树

5.4 树、森林

5.5 树与二叉树的应用

这篇关于数据结构 第5章 树与二叉树(一轮习题总结)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816272

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In