实验五 树的基本操作

1.实验目的:

熟悉树的基本定义,树的存储方式、建立方法及相关基本操作,能够根据实际情况选择合适的存储结构。

2.实验内容:

以二叉链表作存储结构,试编写前序、中序、后序遍历二叉树的算法。

3.正文部分

①什么是树?

一种非线性结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。这个数据结构的形状看起来像一颗叶子朝下倒挂的树。

  • 根节点:没有父节点的结点成为根节点。
  • 叶节点:没有子节点的结点称为叶子结点。

②什么是二叉树?

一颗二叉树是结点的一个有限集合,该集合或者为空,或者是一个根节点加上两颗别称为左子树和右子树的二叉树组成

二叉树的特点:

1.每个节点最多有两颗子树,即二叉树不存在大于2的结点。

2.二叉树的子树有左右之分,其子树的次序不能颠倒。

③先序遍历

先访问根节点,然后再访问左子树,最后再访问右子树。

根据题目的要求,我们需要通过动态内存开辟的空间去存储。

根据先序的特点,如果我们的头结点为空的话,那么我们就可以直接返回空。

否则我们就要将该节点的值插入二叉树,再去访问左子树和右子树。

④中序遍历

先访问左子树,然后再访问根节点,最后再访问右子树。

⑤后序遍历

先访问左子树,然后再访问右子树,最后再访问根节点。


完整源码下载:数据结构——树的基本操作

【数据结构试验】树的基本操作相关推荐

  1. 数据结构树的基本操作_《数据结构》树的基本操作.doc

    <数据结构>树的基本操作 实验四 课程名称:完成日期:姓名:学号:指导教师:实验名称:实验序号:实验成绩:一.实验目的及要求 二.实验环境.实验内容 求出它的深度. .调试过程及实验结果 ...

  2. java树的基本知识_Java数据结构和算法(二)树的基本操作

    Java数据结构和算法(二)树的基本操作 一.树的遍历 二叉树遍历分为:前序遍历.中序遍历.后序遍历.即父结点的访问顺序 1.1 前序遍历 基本思想:先访问根结点,再先序遍历左子树,最后再先序遍历右子 ...

  3. 树形图计算机系统组成,C数据结构的通用树结构和二进制排序树的基本操作

    二叉树: 二叉树是每个节点最多具有两个子树的树结构. 二叉树可以是一个空集:根可以有一个空的左或右子树:或左右子树都为空. 完整的二叉树: 高度为h且由2 {h} – 1个节点组成的二叉树称为完整的二 ...

  4. 数据结构--伸展树(伸展树构建二叉搜索树)-学习笔记

    2019/7/16更新:封装SplayTree进入class:例题:http://poj.org/problem?id=3622 一个伸展树的板子: #include<stdio.h> # ...

  5. 数据结构之树与二叉树

    数据结构之树与二叉树 1.树的概念及结构 1.1.什么是树? 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合.树是递归定义的.之所以把它叫做树是因为它看起来像 ...

  6. 伸展树的基本操作与应用 IOI2004 国家集训队论文 杨思雨

    伸展树的基本操作与应用 安徽省芜湖一中 杨思雨 [关键字] 伸展树 基本操作 应用 [摘要] 本文主要介绍了伸展树的基本操作以及其在解题中的应用.全文可以分为以下四个部分. 第一部分引言,主要说明了二 ...

  7. 数据结构实验 二叉树的基本操作

    数据结构实验 二叉树的基本操作 实验环境: Visual C++ 实验目的: 1.掌握二叉树的定义: 2.掌握二叉树的基本操作,如二叉树的建立.遍历.结点个数统计.树的深 度计算等. 实验内容: 用递 ...

  8. 数据结构之树的详解汇总

    "If I have seen further it is by standing on the shoulders of giants." --Issac Newton 树的种类 ...

  9. mysql树状数据结构_树状结构的数据表如何设计?

    使用Modified Preorder Tree简直是必须的.网上可以搜一下modified preorder tree travesal找到相关资料.参考 http://www.sitepoint. ...

  10. java 二叉树 红黑树_常见数据结构(二)-树(二叉树,红黑树,B树)

    常见数据结构(二)-树(二叉树,红黑树,B树) 标签: algorithms [TOC] 本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自course ...

最新文章

  1. 云原生时代 RocketMQ 运维管控的利器 - RocketMQ Operator
  2. js如何循环拼接字符串
  3. thinkphp中如何使用PHP函数,如何在ThinkPHP中使用函数进行回调
  4. python没有用_你可能没有在Python3中使用但却应该使用的东西
  5. java se 8 新特性_javase8-sample
  6. 实用的无锁队列(一)
  7. 计算机科学创新大赛,计信学院举办第六届科技创新小发明大赛
  8. vue-cli工具搭建vue-webpack项目
  9. 机器学习中最重要的公式——贝叶斯公式
  10. 人脸识别,结构光名词记录
  11. 2020美团实习生招聘笔试题
  12. 无线模块为什么要加屏蔽罩外壳?
  13. 计算机组成原理中EMAR是什么,计算机组成原理与汇编语言程序设计第3章2
  14. 阿里云是干什么用的?
  15. mac版本的visual studio的快捷键修改_几款高效率的mac软件
  16. oracle erp 架构,Oracle ERP (EBS)基础篇-体系架构
  17. 车辆占用应急车道识别抓拍系统 opencv
  18. mbedtls rsa使用pem文件
  19. 那些 996 公司的员工怎么样了?
  20. 机器学习---降维算法

热门文章

  1. ubuntu16.04安装ros操作系统,解决网络问题
  2. 2009-2021计算机408统考真题及解析分享
  3. 支付宝APP支付功能开发
  4. 机器学习基石 作业一
  5. 等级保护第三级安全扩展要求笔记(2019)
  6. goeasy服务器发送(发布)消息,python服务端使用GoEasy实现websocket消息推送
  7. Win 7扫雷时间基址查找
  8. C#使用AForge连接摄像头并且拍照
  9. 增加了ssl证书后websocket连接失败
  10. 计算机二级未来教育押题准吗,计算机二级快速通关秘籍,21%的合格率真相原来是这样!...