《算法和数据结构》算法篇

一:二叉树

  1. 1 定义

(1)定义

树是一种非线性的数据结构,它是由n个有限节点组成有层次关系的集合

(2)基本术语

父子节点:每个节点下方直接相连的节点称为子节点,上方直接相连的节点称为父节点

子树:以子节点为根的树称为子树

根节点和叶子节点:最上方没有父节点的节点为根节点,最下层没有子节点的节点为叶子节点

1.2 存储与定义

(1)顺序存储

二叉树根据层序进行编号后,存放到一位数组中。明显缺点(没法反应二叉树的逻辑关系【不知道节点的左右节点】)

只用于完全二叉树,防止左斜(没有字节点,全在左边或右边)

(2)链式存储

每个节点包括一个数据域,两个指针域

1.3 遍历

(1)定义

(2)先序遍历

(3)中序遍历

(4)后序遍历

(5)层序遍历

按照层次,从左到右依次访问二叉树中的每个节点

1.4 递归遍历

总结

(1)代码模板

解释

(2)类比数组遍历

数组遍历一般通过一个for循环实现,遍历顺序是从前往后

(3)遍历节点顺序

遍历节点顺序仅取决与左右子节点的递归调用顺序,与其它代码无关

1.5 前中后序遍历

(1)定义

在二叉树遍历框架前面加了一套代码

(2)解释

相关推荐
OuO-212 分钟前
笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径
java·算法·矩阵
程序喵大人1 小时前
【C++进阶】STL算法与函数对象 - 04 find、count和any_of把查询写成意图
开发语言·c++·算法
豆沙沙包?1 小时前
c++中引用(P7-P11)
java·c++·算法
CV-X.WANG1 小时前
从零理解 ORB-SLAM3(二):系统全景、执行上下文与核心数据结构
数据结构
Doraemomo2 小时前
数据结构-二叉树
数据结构
不会代码的小猴2 小时前
标准模板库(STL)
开发语言·c++·笔记·算法
ZhouDevin2 小时前
算法论文/高效微调4——DoRA:权重分解的低秩适配方法
算法
爱跳舞的烤冷面2 小时前
自学嵌入式第20天(数据结构篇——队列)
数据结构
AI探索先锋2 小时前
A* 路径规划:四种算法的进化史-学习
学习·算法
旖旎夜光2 小时前
LeetCode 202:快乐数(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针