数据结构-无序(自由)树的简单实现(C++)
本文使用兄弟孩子表示法用C++实现普通树的简单建立。
实现了插入数据,查询数据,前序遍历,中序遍历,后序遍历。
树状图的概念:
树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。看起来就像一棵倒挂的树。
树状图的特点:
- 每个结点有零个或多个子结点;
- 没有父结点的结点称为根结点;
- 每一个非根结点有且只有一个父结点;
- 除了根结点外,每个子结点可以分为多个不相交的子树;
树状图的种类:
- 无序树:树中任意节点的子结点之间没有顺序关系,这种树称为无序树,也称为自由树;
- 有序树:树中任意节点的子结点之间有顺序关系,这种树称为有序树;
- 二叉树:每个节点最多含有两个子树的树称为二叉树;
- 完全二叉树:对于一颗二叉树,假设其深度为d(d>1)。除了第d层外,其它各层的节点数目均已达最大值,且第d层所有节点从左向右连续地紧密排列,这样的二叉树被称为完全二叉树;
- 满二叉树:所有叶节点都在最底层的完全二叉树;
- 平衡二叉树(AVL树):当且仅当任何节点的两棵子树的高度差不大于1的二叉树;
- 排序二叉树(二叉查找树):也称二叉搜索树、有序二叉树;
- 红黑树: 是一种自平衡二叉查找树,它是在1972年由鲁道夫·贝尔发明的,他称之为”对称二叉B树”
- 霍夫曼树:带权路径最短的二叉树称为哈夫曼树或最优二叉树;
- B树:一种对读写操作进行优化的自平衡的二叉查找树,能够保持数据有序,拥有多于两个子树。
树的遍历:
- 前序遍历(先根节点,后左孩子节点,再右孩子结点)
- 中序遍历(先左孩子结点,后根节点,再右孩子结点)
- 后序遍历(先做孩子节点,后右孩子结点,再根节点)
普通树的表示:
兄弟孩子表示法:
数据结构-无序(自由)树的简单实现(C++)相关推荐
- 数据结构 多路查找树 ---------B树和B+树的简单介绍
参考链接:微信公众号 程序员小灰 https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw https://mp.weixin.qq.com/s/jRZMMO ...
- 数据结构 非线性结构 树 介绍及存储方法
所谓树, 其实跟链表有类似的地方, 就是都是由节点和指针构成的数据结构. 在链表中, 每1个节点(尾节点除外)只有1个指针指向下1个节点. 所以链表各个节点可以由一条线链接起来, 就是一种线性结构 ...
- sql 树状结构中知道 父节点与孙节点_数据结构之(树)
前言 在计算机科学中,树(英语:tree)是一种非线性的抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点组成一个具有层次 ...
- 数据结构JAVA实现——树
数据结构JAVA实现--树 数据结构java实现--树的双亲表示法 数据结构Java实现--树|N叉树之孩子双亲表示法--顺序存储结构+链表 无序二叉树的实现 前序线索二叉树,中序线索二叉树 后续线索 ...
- 数据结构与算法:树 二叉树入门(一)
Tips: 采用java语言,关注博主,底部附有完整代码 工具:IDEA 本系列介绍的是数据结构: 树 这是第1篇目前计划一共有12篇: 二叉树入门 本篇 顺序二叉树 线索化二叉树 堆排序 赫夫曼树( ...
- MySql进阶索引篇01——深度讲解索引的数据结构:B+树
深度讲解索引的数据结构:B+树 1.索引介绍 1.1 为什么使用索引 1.2 索引的优缺点 2.从零开始设计索引 2.1没有索引时怎么查询数据 2.2 基于页的目录项的简单索引 2.3 InnoDB索 ...
- DF学数据结构系列——B树(B-树和B+树)介绍
B树 定义:一棵B树T是具有如下性质的有根树: 1)每个节点X有以下域: a)n[x],当前存储在X节点中的关键字数, b)n[x]个关键字本身,以非降序存放,因此key1[x]<=key2[x ...
- Python__数据结构与算法——树、二叉树(实现先、中、后序遍历)
目录 一.树 二.二叉树 树和前面所讲的表.堆栈和队列等这些线性数据结构不同,树不是线性的.在处理较多数据时,使用线性结构较慢,而使用树结构则可以提高处理速度.不过,相对于线性的表.堆栈和队列等线性数 ...
- 数据结构 —— 递归和树
概况: 递归和分治 递归中用到了分治法. 分治法的思想简单概括就是"分而治之". 递归实际使用"栈"来实现的. 递归包括递归方程.临界条件: EX:实现随机斐波 ...
最新文章
- Java使用MyEclipse2017时的一些小细节
- 机器学习之手把手实现第1部分:支持向量机的原理和实现
- 【HDU - 1281 】棋盘游戏 (经典的二分图匹配,匈牙利算法,枚举删除顶点,必须边,关建边)
- 小型网络的组建及排错
- Qt文档阅读笔记-数据驱动测试
- go 链路追踪_Go技术日报(20200911)
- 稳定服务器头像,WordPress 修复 Gravatar 头像稳定服务器地址
- 2019依图科技笔试题
- Android LiveData初识
- 文件内容读取相关操作
- 实现正负值及多条Y轴 Echarts柱状图
- vue+vant+springboot+netty仿照微信聊天和朋友圈
- Windows10反复出现“无法完成更新,正在撤销更新”
- QT报错:Gtk-Message:Failed to load module “gail“
- IE浏览器通过JS提交表单时报错拒绝访问
- cube函数matlab_Matlab geom3d函数注释
- 一次短暂的淮安、盐城之旅
- Matplotlib学习笔记(三)
- VMD结合ISSA优化LSSVM功率预测
- Linux常用环境配置及软件安装(持续更新)
热门文章
- sfc /scannow扫描修复系统文件命令怎么用
- 微信投票1人1票php制作,微信投票怎么刷票,微信人工投票1毛一票
- php date函数 在哪里,PHP date函数
- 【洛谷P4084】Barn Painting【树形DP】
- 解决localhost打不开的情况
- 关于matlab兼容性win10系统,详解win10系统运行不了matlab10软件的办法
- f2fs学习笔记 - 5. f2fs基本类图
- MySQL架构与业务总结图
- SIM显示字 SPN,PLMN ,MCC,MNC
- 一个主流计算机的配置,8000求个现在主流的电脑配置