【数据结构】双链表 二叉树 练习记录

双链表结构体:数据域和两个指针域(指向上一个结点和下一个结点)

结构体别名:DNode

结构体指针别名:DLinklist

练习1:删除双链表中所有值为x的结点

和单链表的区别是不用prev指针记录前一个结点了。

但要注意处理遍历到头结点和尾结点的情况,因为头结点的prev指向空,尾结点的next指向空,再

访问 NULL->next,导致段错误。

练习2:双链表就地逆置

思路:对每一个结点,交换prev和next指向的结点

实现:

验证:


二叉树结构体:数据域和指针域(指向结点的左子树和右子树)

结构体别名:BTNode

结构体指针别名:BiTree

根据前序输入递归创建二叉树:

如输入ABD##E##C##

创建出来的是:

A

/ \

B C

/ \

D E

这些计算本质也是从根节点开始遍历二叉树。

用递归的方法实现:

练习3:计算二叉树中所有结点个数

+1是加根结点

练习4:计算二叉树中所有叶子结点个数

练习5:计算二叉树的深度

相关推荐
M78佐菲4 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
益达丫5 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
马可家的菠萝10 小时前
你收藏的资料,有多少真的被你第二次打开过?
笔记·知识管理·效率提升·个人知识库
小刘在重生~11 小时前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试
职豚求职小程序11 小时前
中国人寿27秋招笔试[特殊字符]北森机考|备考攻略
笔记
江湖人称菠萝包11 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
乐橙开放平台11 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
山岚的运维笔记12 小时前
mysql 专业笔记 -- 第 36 章:MySQL 管理
运维·数据库·笔记·后端·mysql·oracle·dba
江湖人称菠萝包14 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
老当益壮梁奶奶15 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件