oracle树子类遍历父类_树二叉树总结篇

本文是关于二叉树的初级阶段总结,详细介绍了使用C++实现的二叉树节点结构以及通过前序遍历、中序遍历、后序遍历等不同方式构建和遍历二叉树的递归与迭代方法,包括二叉搜索树的插入、删除和搜索操作。
摘要由CSDN通过智能技术生成

205d3369ffc68e208e2a590dc266c72e.gif

总算把你给盼来了

现在才关注我 确实是晚了点

但没关系 来了就好

25a25483ade4a1fcee322b47f96d53e4.gif 4b43e4f2d8df6ac3ed8d05972d5afa9b.gif 4b43e4f2d8df6ac3ed8d05972d5afa9b.gif a6b9a18da1fb5d387604dca850001a99.png 7fde2f2b9c671f97d042f84d9043da6e.png

此文章是二叉树初级阶段的总结篇。

以《力扣》、《王道数据结构》作为参考资料。

314e56bf2e26f6654dc47a5bd6aba470.png 7fde2f2b9c671f97d042f84d9043da6e.png d6d6290c4e80adbe69aedf1e2144e8ee.png

实现的方法如下图的结构,以c++语言来实现。

57926b167f071d119caa876613975f05.png

a0ffbab2c4af877afd9c5c12898e37ff.gif

解释:

TreeNode类:为二叉树的结点结构

TreeCreate类:是二叉树所有方法的父类,如下图

4114dddff4217de6e62f720193aebf55.png

iteration类:是TreeCreate的子类,继承父类的方法如下图。

087a2abfb96b5e56052a066cec0ae721.png

recursion类:是TreeCreate的子类,继承父类的方法如下图。

74e074a25b7eabbecf4454d4f898792b.png

Traversal_Iteration类:是TreeCreate的子类,继承父类的方法如下图。

b80e8a80186a3572ffd695d98de4fb8c.png

Traversal_recursion类:是TreeCreate的子类,继承父类的方法如下图。

b59e75c8eca4c04766b04e66afcb964d.png

Create:里面是包含四种类,是实现创建树的方法。

10345e4c456dee084959f56dfbefa24f.png

edf318a18d2bdf04435cc378bca315ca.gif ac7048c7a97eaa2c7cde20b053637f39.gif 5ba8313bbfe69634274630e93bb74ee3.gif 62e642b29ec7e989cdf886a3145bbd13.gif

二叉树的实现

1 二叉树的存储结构——链式存储

f0cebbdc579b624a5911b388d846a014.png

2 TreeCreate类(父类)

f20a45c5b5716c9e528d74b9462af70e.png

3 Create:里面是包含四种类,是实现创建树的方法。

f97ba35b8dbbee464768e681cdeb73ff.png

具体实现:

前序遍历与中序遍历构建二叉树

解法1、前序遍历与中序遍历构建二叉树:

881b66ef63ae218163e4d5793777f31d.png

d97091051460fc5fe55c5a23ff2c1c3d.png

086b778d5a8967dd55275bedb9f55bec.png

实现:

a832e3f7db5fc39a807f2a82c448fd55.png

解法2、前序遍历与中序遍历构建二叉树(map):

c069e572aa85de765667f986304841fc.png

中序遍历与后序遍历构建二叉树

解法1、中序遍历与后序遍历构建二叉树:

71954716b9c7b33501573317519a7e69.png

d97091051460fc5fe55c5a23ff2c1c3d.png

7d6575606b0d27ed9da298e175c7bf1c.png

实现:

025c2c39b9014dacdb4562f1538df32f.png

解法2、中序遍历与后序遍历构建二叉树:

48e979f4043e76e115b82b293422a0b9.png

a0ffbab2c4af877afd9c5c12898e37ff.gif1 recursion.h类的实现(递归)

c07d743f222bb42863418f7116b2c22b.png

2

前序遍历构造二叉树(递归)

bc073d3e8b3c1a926c7cf3271f1f7dea.png

3

二叉搜索树中的插入操作(递归)

ff212d89b939008ded9b5e62d9652cee.png

4

删除二叉搜索树中的节点

682c7a39da786010af773b977501f8c1.png

5

二叉搜索树中的搜索

(递归)

5d35b48f18730b32644f8ad183f1ff89.png

6

二叉树的最大深度

fbbc592038cacd636ae9c3b62c6d69d1.png

a0ffbab2c4af877afd9c5c12898e37ff.gif1 iteration.h类的实现(迭代)

18210496c7f835e1cae6d9461013dd16.png

2

前序遍历构造二叉树(迭代)

224c9e00f327a1e6599e9d3f1c4bfb71.png

3

二叉搜索树中的插入操作(迭代)

40ae0b01fdf098836f3d5d35b072ff45.png

4

删除二叉搜索树中的节点(迭代)

581bb464d1dd16101fa4da501c02aed7.png

5

二叉搜索树中的搜索(迭代)

c2b6e2f49e694740e0628a96bae9e8e7.png

6二叉树的最大深度(迭代)

aa71ad389d18436686e22ac12ef7c911.png

a0ffbab2c4af877afd9c5c12898e37ff.gif a0ffbab2c4af877afd9c5c12898e37ff.gif Traversal_recursion.h类的实现

a788c2ad44c6f54d6c2bd86cbcd6231b.png

afee8d31d7ed7b039dd53f734190ce7e.gif c05e064be7353486edfec9a5ce544dd9.png fa70fd51bd57392ecddc340c05a024a4.gif Tr aversal_recursion e2d679b29c6b7b25e920ba3c3e36b8c2.gif afee8d31d7ed7b039dd53f734190ce7e.gif c05e064be7353486edfec9a5ce544dd9.png1 前序遍历(递归)

db51544e88d5427f8c34f757f00cecff.png

2 中序遍历(递归 )

c8f7bcd689501afb200ef395d54e8619.png

3 后序遍历(递归 )

ccf2897bb3b4b1fd36ded20d77da8caa.png

注:三者的时间复杂度和空间复杂度均为O(n)。

a0ffbab2c4af877afd9c5c12898e37ff.gif0 1 Traversal_Iteration.h的实现 769900437516e3aa3d478960ce173b74.gif

6e77ee37bfcefde1599eef1159754ae4.png

afee8d31d7ed7b039dd53f734190ce7e.gif c05e064be7353486edfec9a5ce544dd9.png fa70fd51bd57392ecddc340c05a024a4.gif Traversal_Iteration e2d679b29c6b7b25e920ba3c3e36b8c2.gif afee8d31d7ed7b039dd53f734190ce7e.gif c05e064be7353486edfec9a5ce544dd9.png1

前序遍历(迭代)

472ac9a6cfb092d4f501571e02b95b3d.png

2 中序遍 历 (迭代 )

f0cfc7b57af4c4493b4a86690d0e63bc.png

3 后序遍 历 (迭代 )

151117e971bab8d269369dc887884312.png

4 层序遍 历

273fcb52ab83055df700f612d99aa1a7.png

f776ebd05668e8cb51b6cc6b6437ab2a.gif

《树与二叉树递归版c++》

《树与二叉树迭代版c++》

《二叉搜索树递归版c++》

《二叉搜索树迭代版c++》

9f3a460d9d990f711fa6bb65c626405e.png

c23cb10bd8f191504154cd8300d29152.gif

部分图片来源网络

侵删致歉

2c47bd22cbf36952dbf1995dc55f0328.gif

转载需经同意并引用出处

e90a97eb390ede0daf7f599f1da5b29d.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值