数据结构:队列,二叉树

一、今日学习

今天主要围绕队列二叉树展开学习,并结合链式队列的实现方式进行了深入理解。以下将对各部分进行系统梳理与总结。


二、队列(Queue)

1. 基本概念

  • 队列是一种**先进先出(FIFO)**的线性数据结构。

  • 操作受限:仅允许在队尾(rear)插入 (入队),在队头(front)删除(出队)。

2. 队列的特点

  • 插入与删除操作分别在队列的两端进行。

  • 适用于需要按顺序处理的场景,如任务调度、缓冲区管理等。

3. 队列的存储结构

(1)顺序队列
  • 使用数组实现,需处理"假溢出"问题。

  • 常通过循环队列优化空间利用率。

(2)链式队列
  • 使用链表实现,无需预先分配固定空间。

  • 动态内存分配,适合元素数量变化较大的场景。

  • 结构包含头指针(front)和尾指针(rear),分别指向队头与队尾节点。

4. 队列的基本操作

  • 入队(Enqueue):在队尾插入元素

  • 出队(Dequeue):在队头删除元素

  • 判空(IsEmpty)

  • 获取队头元素(GetFront)

5. 链式队列的实现要点

  • 节点结构包含数据域与指针域。

  • 初始化时 front 与 rear 均指向空。

  • 出队时需处理队列仅有一个节点的情况,避免 rear 成为野指针。


三、二叉树(Binary Tree)

1. 树的基本概念

  • 树是一对多的非线性数据结构。

  • 基本术语:

    • 根节点、分支节点、叶子节点

    • 前驱(祖先)与后继(子孙)

    • 度(入度、出度)

    • 层、高度、深度

2. 二叉树的定义与性质

  • 每个节点最多有两个子节点(左孩子、右孩子)。

  • 性质:

    • 第 k 层最多有 2k−12k−1 个节点

    • 前 k 层最多有 2k−12k−1 个节点

  • 特殊二叉树:

    • 满二叉树:所有叶子节点在同一层

    • 完全二叉树:节点编号连续,适合数组存储

3. 二叉树的遍历

遍历方式分为两大类:

(1)深度优先遍历(DFS)
  • 前序遍历:根 → 左 → 右

  • 中序遍历:左 → 根 → 右

  • 后序遍历:左 → 右 → 根

(2)广度优先遍历(BFS)
  • 层序遍历:按层从左到右访问节点,通常借助队列实现。

4. 二叉树的应用场景

  • 表达式树

  • 文件系统结构

  • 搜索与排序(如二叉搜索树)

  • 哈夫曼编码等


四、队列与二叉树的联系

  • 二叉树的层序遍历常借助队列实现,依次将每层节点入队、出队访问。

  • 队列作为辅助结构,在二叉树的各种非递归遍历算法中均有应用。


今日练习

1.利用栈实现队列的功能,完成先进先出,后出后出的功能 1 2 3 4 5 1 2 3 4 5。

2.本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。

输入格式:

输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。

注意: 题目保证不存在只有小数点的输入。

相关推荐
CSharp精选营18 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
刘马想放假4 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠5 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦12 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
小小工匠13 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
玖玥拾13 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
Qres82113 天前
算法复键——树状数组
数据结构·算法
牛油果子哥q13 天前
并查集(DSU)超精讲,路径压缩、按秩合并、万能模板、连通性判定、最小生成树与刷题实战全解
数据结构·c++·最小生成树·并查集
凌波粒13 天前
LeetCode--491.递增子序列(回溯算法)
数据结构·算法·leetcode
WL学习笔记13 天前
单项不带头不循环链表
数据结构·链表