【数据结构第三周】树知识点整理(上)

1、树的定义

树(Tree):n(n>=0)个结点构成的有限集合

子树是不相交的。

除了根节点外,每个结点有且仅有一个父结点。

一棵N个结点的树有N-1条边。

2、树的一些基本术语

(1)结点的度(Degree):结点的子树个数

(2)树的度:树的所有结点中最大的度数

(3)叶结点(Leaf):度为0的结点

(4)父结点(Parent):有子树的结点是其子树的根结点的父结点

(5)子节点(Child):若A结点是B结点的父结点,则称B结点是A结点的子结点

(6)兄弟结点(Sibling):具有同一父结点的各结点彼此是兄弟结点

(7)路径和路径长度:从结点n1到nk的路径为一个结点序列。路径所包含的边的个数为路径的长度

(8)祖先结点(Ancestor):沿树根到某一结点路径上的所有结点都是这个结点的祖先结点

(9)子孙结点(Descendant):某一结点的子树中所有结点是这个结点的子孙

(10)结点的层次(Level):规定根结点在1层,其他任一结点的层数是其父节点的层数加1

(11)树的深度(Depth):树中所有结点中的最大层次是这棵树的深度

3、二叉树及存储结构

(1)定义

二叉树是每个结点最多有两个子树的有序树

具体五种基本形态

特殊的二叉树

(2)二叉树的几个重要性质

(2)二叉树的顺序存储结构

一般的二叉树如果用这种方式进行存储的话会造成空间上的浪费。

(3)二叉树的链式存储结构

时间: 2024-08-14 17:45:01

【数据结构第三周】树知识点整理(上)的相关文章

【数据结构第四周】树知识点整理(下)【二叉搜索树】

二叉搜索树 (1)定义 二叉搜索树(Binary Search Tree),也称二叉排序树或二叉查找树 一棵二叉树,可以为空:如果不为空,满足以下性质: a.非空左子树的所有键值小于其根节点的键值 b.非空右子树的所有键值大于其根节点的键值 c.左右子树都是二叉搜索树 (2)相关操作 Position Find( ElementType X, BinTree BST ):从二叉搜索树BST 中查找元素X,返回其所在结点的地址 Position FindMin( BinTree BST ):从二叉

【数据结构第四周】树知识点整理(下)【堆】

在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权.堆即为解决此类问题设计的一种数据结构. 1.堆的两个特性 结构性:用数组表示的完全二叉树 有序性:任一结点的关键字是其子树所有结点的最大值(或最小值) 最大堆(MaxHeap)”,也称“大顶堆”:最大值 最小堆(MinHeap)”,也称“小顶堆” :最小值 2. typedef struct HeapStruct *MaxHeap; s

第三周课堂笔记请上传

第三周课堂笔记提交地址: https://edu.cnblogs.com/campus/bjgygd/EIE15-1Computersoftwaretechnologyfoundation/homework/316

数据结构——第三章树和二叉树:02二叉树

1.二叉树的存储结构: (1)二叉树的顺序存储表示: #define MAX_TREE_SIZE 100 //二叉树的最大结点数 typedef TElemType SqBiTree[MAX_TREE_SIZE]; SqBiTree bt; (2)二叉树的链式存储表示: ①二叉链表: typedef struct BiTNode //结点结构 { TElemType data; struct BiTNode *lchild, *rchild; //左右孩子指针 } BiTNode, *BiTre

数据结构——第三章树和二叉树:03树和森林

1.树的三种存储结构: (1)双亲表示法: #define MAX_TREE_SIZE 100 结点结构: typedef struct PTNode { Elem data; int parent; //双亲位置域 } PTNode; (2)孩子双亲链表表示法: typedef struct PTNode { Elem data; int parent; //双亲位置域 struct CTNode* nextchild; } *ChildPtr; (3)树的二叉链表(孩子-兄弟)存储表示法:

【数据结构第五周】图(上)

1.什么是图 表示多对多的关系 包含一组顶点:通常用V(Vertex)表示顶点集合 一组边:通常用E(Edge)表示边的集合 2.抽象数据类型定义 类型名称:图(Graph) 数据对象集:G(V,E)由一个非空的有限顶点集合V和一个有限边集合E组成. 操作集:对于任意图G 属于 Graph,以及v 属于 V,e 属于 E Graph Create():建立并返回空图; Graph InsertVertex(Graph G, Vertex v):将v插入G; Graph InsertEdge(Gr

数据结构——第三章树和二叉树:01树和二叉树的类型定义

1.树的类型定义: (1)数据对象D:D是具有相同特性的数据元素的集合. (2)数据关系R:若D为空集,则成为空树 否则:在D中存在唯一的称为根的数据元素root.当n>1时,其余结点可分为n(n>0)个互不相交的有限集T1, T2, T3, ..., Tm,其中每一棵子集本身又是一课符合本定义的树,称为根root的子树. 2.树的基本操作: (1)查找类: ①Root(T):求树的根结点 ②Value(T, cur_e):求当前结点的元素值 ③Parent(T, cur_e):求当前结点的双

【数据结构第七周】排序(上)

1.简单排序 void Bubble_Sort( ElemenType A[], int N) { for ( P = N-1; P >= 0 ; P--) { flag = 0; for (i = 0; i < P; ++i) { if (A[i] > A[i+1]) { Swap(A[i],A[i+1]); flag = 1; } } if (flag == 0) { break; } } } 最好情况:顺序T = O( N ) 最坏情况:逆序 T = O( N^2 ) 2.插入排序

20172328《程序设计与数据结构》第三周学习总结

20172328李馨雨<程序设计与数据结构>第三周学习总结 教材学习内容总结 1.学习使用new运算符建立对象(即实例化),了解null空引用.具体体悟 :类和对象的关系. 2.对象引用变量的声明和初始化.用"."来引用方法,并且需要保留(). 3.了解String类的一些基本方法和标准类库java API. 4.除了在java.lang中的变量无需import声明,其他都需要import声明(简化类的多次引用). 5.了解和使用Random类和Math类. 6.理解格式化