本文使用兄弟孩子表示法用C++实现普通树的简单建立。

实现了插入数据,查询数据,前序遍历,中序遍历,后序遍历。

树状图的概念:

树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。看起来就像一棵倒挂的树。

树状图的特点:

  1. 每个结点有零个或多个子结点;
  2. 没有父结点的结点称为根结点;
  3. 每一个非根结点有且只有一个父结点;
  4. 除了根结点外,每个子结点可以分为多个不相交的子树;

树状图的种类:

  1. 无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;
  2. 有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树;
  3. 二叉树:每个节点最多含有两个子树的树称为二叉树;
  4. 完全二叉树:对于一颗二叉树,假设其深度为d(d>1)。除了第d层外,其它各层的节点数目均已达最大值,且第d层所有节点从左向右连续地紧密排列,这样的二叉树被称为完全二叉树;
  5. 满二叉树:所有叶节点都在最底层的完全二叉树;
  6. 平衡二叉树(AVL树):当且仅当任何节点的两棵子树的高度差不大于1的二叉树;
  7. 排序二叉树(二叉查找树):也称二叉搜索树、有序二叉树;
  8. 红黑树: 是一种自平衡二叉查找树,它是在1972年由鲁道夫·贝尔发明的,他称之为”对称二叉B树”
  9. 霍夫曼树:带权路径最短的二叉树称为哈夫曼树或最优二叉树;
  10. B树:一种对读写操作进行优化的自平衡的二叉查找树,能够保持数据有序,拥有多于两个子树。

树的遍历:

  • 前序遍历(先根节点,后左孩子节点,再右孩子结点)
  • 中序遍历(先左孩子结点,后根节点,再右孩子结点)
  • 后序遍历(先做孩子节点,后右孩子结点,再根节点)

普通树的表示:

兄弟孩子表示法:

数据结构-无序(自由)树的简单实现(C++)相关推荐

  1. 数据结构 多路查找树 ---------B树和B+树的简单介绍

    参考链接:微信公众号 程序员小灰 https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw https://mp.weixin.qq.com/s/jRZMMO ...

  2. 数据结构 非线性结构 树 介绍及存储方法

    所谓树, 其实跟链表有类似的地方,  就是都是由节点和指针构成的数据结构. 在链表中,  每1个节点(尾节点除外)只有1个指针指向下1个节点. 所以链表各个节点可以由一条线链接起来, 就是一种线性结构 ...

  3. sql 树状结构中知道 父节点与孙节点_数据结构之(树)

    前言 在计算机科学中,树(英语:tree)是一种非线性的抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点组成一个具有层次 ...

  4. 数据结构JAVA实现——树

    数据结构JAVA实现--树 数据结构java实现--树的双亲表示法 数据结构Java实现--树|N叉树之孩子双亲表示法--顺序存储结构+链表 无序二叉树的实现 前序线索二叉树,中序线索二叉树 后续线索 ...

  5. 数据结构与算法:树 二叉树入门(一)

    Tips: 采用java语言,关注博主,底部附有完整代码 工具:IDEA 本系列介绍的是数据结构: 树 这是第1篇目前计划一共有12篇: 二叉树入门 本篇 顺序二叉树 线索化二叉树 堆排序 赫夫曼树( ...

  6. MySql进阶索引篇01——深度讲解索引的数据结构:B+树

    深度讲解索引的数据结构:B+树 1.索引介绍 1.1 为什么使用索引 1.2 索引的优缺点 2.从零开始设计索引 2.1没有索引时怎么查询数据 2.2 基于页的目录项的简单索引 2.3 InnoDB索 ...

  7. DF学数据结构系列——B树(B-树和B+树)介绍

    B树 定义:一棵B树T是具有如下性质的有根树: 1)每个节点X有以下域: a)n[x],当前存储在X节点中的关键字数, b)n[x]个关键字本身,以非降序存放,因此key1[x]<=key2[x ...

  8. Python__数据结构与算法——树、二叉树(实现先、中、后序遍历)

    目录 一.树 二.二叉树 树和前面所讲的表.堆栈和队列等这些线性数据结构不同,树不是线性的.在处理较多数据时,使用线性结构较慢,而使用树结构则可以提高处理速度.不过,相对于线性的表.堆栈和队列等线性数 ...

  9. 数据结构 —— 递归和树

    概况: 递归和分治 递归中用到了分治法. 分治法的思想简单概括就是"分而治之". 递归实际使用"栈"来实现的. 递归包括递归方程.临界条件: EX:实现随机斐波 ...

最新文章

  1. Java使用MyEclipse2017时的一些小细节
  2. 机器学习之手把手实现第1部分:支持向量机的原理和实现
  3. 【HDU - 1281 】棋盘游戏 (经典的二分图匹配,匈牙利算法,枚举删除顶点,必须边,关建边)
  4. 小型网络的组建及排错
  5. Qt文档阅读笔记-数据驱动测试
  6. go 链路追踪_Go技术日报(20200911)
  7. 稳定服务器头像,WordPress 修复 Gravatar 头像稳定服务器地址
  8. 2019依图科技笔试题
  9. Android LiveData初识
  10. 文件内容读取相关操作
  11. 实现正负值及多条Y轴 Echarts柱状图
  12. vue+vant+springboot+netty仿照微信聊天和朋友圈
  13. Windows10反复出现“无法完成更新,正在撤销更新”
  14. QT报错:Gtk-Message:Failed to load module “gail“
  15. IE浏览器通过JS提交表单时报错拒绝访问
  16. cube函数matlab_Matlab geom3d函数注释
  17. 一次短暂的淮安、盐城之旅
  18. Matplotlib学习笔记(三)
  19. VMD结合ISSA优化LSSVM功率预测
  20. Linux常用环境配置及软件安装(持续更新)

热门文章

  1. sfc /scannow扫描修复系统文件命令怎么用
  2. 微信投票1人1票php制作,微信投票怎么刷票,微信人工投票1毛一票
  3. php date函数 在哪里,PHP date函数
  4. 【洛谷P4084】Barn Painting【树形DP】
  5. 解决localhost打不开的情况
  6. 关于matlab兼容性win10系统,详解win10系统运行不了matlab10软件的办法
  7. f2fs学习笔记 - 5. f2fs基本类图
  8. MySQL架构与业务总结图
  9. SIM显示字 SPN,PLMN ,MCC,MNC
  10. 一个主流计算机的配置,8000求个现在主流的电脑配置