数据结构学习笔记——树的概念
来源:互联网 发布:中国期刊数据库靠谱吗 编辑:程序博客网 时间:2024/06/01 18:24
树的定义
树(Tree)是n(n≥0)个有限数据元素的集合。当n=0 时,称这棵树为空树。在一棵树T 中:
1. 有一个特殊的数据元素称为树的根结点,根结点没有前驱结点;
2. 若n>1,除根结点之外的其余数据元素被分成m(m>0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树。树T1,T2,…,Tm 称为这个根结点的子树。
相关术语
- 结点的度:结点所拥有的子树的个数称为该结点的度。
- 叶结点:度为0 的结点称为叶结点,或者称为终端结点。
- 分支结点:度不为0 的结点称为分支结点,或者称为非终端结点。一棵树的结点除叶结点外,其余的都是分支结点。
- 孩子、双亲、兄弟:树中一个结点的子树的根结点称为这个结点的孩子。这个结点称为它孩子结点的双亲。具有同一个双亲的孩子结点互称为兄弟。
- 路径、路径长度:如果一棵树的一串结点n1,n2,…,nk 有如下关系:结点ni 是ni+1 的父结点(1≤i< k),就把n1,n2,…,nk 称为一条由n1 至nk 的路径。这条路径的长度是k-1。
- 祖先、子孙:在树中,如果有一条路径从结点M 到结点N,那么M 就称为N 的祖先,而N 称为M 的子孙。
- 结点的层数:树的根结点的层数为1,其余结点的层数等于它的双亲结点的层数加1。
- 树的深度:树中所有结点的最大层数称为树的深度。
- 树的度:树中各结点度的最大值称为该树的度。
- 有序树和无序树:如果一棵树中结点的各子树从左到右是有次序的,即若交换了某结点各子树的相对位置,则构成不同的树,称这棵树为有序树;反之,则称为无序树。
- 森林:零棵或有限棵不相交的树的集合称为森林。自然界中树和森林是不同的概念,但在数据结构中,树和森林只有很小的差别。任何一棵树,删去根结点就变成了森林。
基本操作
查找类
Root(T);//求树的根结点
Value(T,cur_e);//求当前结点的元素值
Parent(T,cur_e);//求当前结点的双亲结点
LeftChild(T,cur_e);//求当前结点的最左孩子
RightSibiling(T,cur_e);//求当前结点的右兄弟
TreeEmpty(T);//判定树是否为空树
TreeDepth(T);//求树的深度
TraverseTree(T,Visit());//遍历
插入类
InitTree(&T);//初始化置空树
CreateTree(&T,definition);//按定义构造树
Assign(&T,cur_e,value);//给当前结点赋值
InsertChild(&T,&P,i,c);//将以c为根的树插入为节点p的第i棵子树
删除类
ClearTree(&T);//将树清空
DestroyTree(&T,&p,i);//删除结点p的第i棵子树
有向树:
1. 有确定的根;
2. 树根和子树根之间为有向关系
按子树之间的次序关系可分为
有序树:子树之间存在确定的次序关系。
无序树:子树之间不存在确定的次序关系。
线性结构与树形结构
0 0
- 数据结构学习笔记——树的概念
- 数据结构学习——递归的概念和程序实现
- 数据结构概念理解的例子_学习笔记01
- 数据结构学习笔记————查找相关概念摘要
- 【黑马程序员-学习笔记】数据结构-概念
- 数据结构学习笔记(一)基础概念
- 数据结构概念_学习笔记2
- 数据结构学习笔记(一):概念
- 数据结构学习笔记——二叉树的类型定义
- 数据结构学习笔记——二叉树的存储结构
- 数据结构学习笔记——二叉树的遍历
- 34. 数据结构笔记之三十四树的概念
- 数据结构学习笔记——树
- 数据结构的概念—有关概念和术语
- Java学习笔记一——重点概念的介绍
- ActiveMQ学习笔记(1)——JMS的概念
- ActiveMQ学习笔记(1)——JMS的概念
- C++学习笔记31——类的基础概念
- 操作系统学习1
- HDU 4352 XHXJ's LIS(数位dp&状态压缩)
- JavaWeb项目中的绝对路径与相对路径问题
- Atitit.业务系统的新特性 开发平台 新特性的来源总结
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
- 数据结构学习笔记——树的概念
- 全面理解面向对象的 JavaScript
- 架构设计之-逻辑架构
- 大数据应用时Oracle优化方法1
- (p93)k路归并
- js&&jq 的常用功能
- 学stm32感想
- Linux系统编程基础知识 2015/1/14
- Splunk setup guide