数据结构

(数据结构内容整理)

重要题型

一、树

1.二叉树的遍历

课本定义P128 == 前提:明白三种遍历的定义==

  1. 先序遍历
  2. 中序遍历
  3. 后序遍历

基础题型

-已知先序(后序)和中序,还原二叉树,并写出另外一种序的排列

重要知识点

先序:序列开头是根结点
后序:序列尾部是根结点
中序:某个节点的左边序列是左子树,右边序列是右子树

方法
(1)找树或者子树的根结点:先序序列的开头(后序序列的尾部)
(2)根据根结点划分左右子树:中序序列的特点
(3)不断重复以上步骤
例子
先序:OWPEKMNJL
中序:WPOMKNELJ
1.根据先序得到根结点O
2.划分中序序列
WP | O | MKNELJ
可知左子树是 W P 右子树 M K N E L J
3.操作左子树 W P
此时先序: WP 中序: WP

  • 根据先序序列得到 WW P的根结点
  • 划分中序序列 空序列 / W / P 可知左子树为空,右子树为P
  • 此时可以画出部分二叉树
    在这里插入图片描述

4.操作右子树 M K N E L J
此时先序:EKMNJL 中序:MKNELJ

  • 根据先序序列得到根结点为E
  • 划分中序序列 M K N / E / L J 可知 MKN 是左子树 ,LJ 是右子树
  • 此时初步确定右子树的形状
    在这里插入图片描述

5.进行MKN排列
此时先序:KMN 中序:MKN

  • 根据先序找根结点 K
  • 划分中序序列 M | K | N 可知左子树为 M ,右子树为 N

6.进行LJ排列
此时先序:JL 中序:LJ

  • 根据先序找根结点J
  • 划分中序序列 L | J | 空序列 可知左子树为 L, 无右子树

综上可得二叉树为在这里插入图片描述

2.二叉查找树/二叉排序树/二叉搜索树

课本定义是在P227
二叉排序树(Binary Sort Tree)或者是一颗空树;或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)它的左右子树也分别为二叉排序树。

基本要求

给定一个序列将其按照给定规则进行建立二叉排序树 (插入)

方法总结

根据给定的规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值