树:
有且只有一个被称为根的节点
由若干个互不相交的子树,子树本身就是一颗树
专业术语:
节点 父节点 子节点 子孙 堂兄弟
深度:
从根节点到最底层节点的层数被称之为深度
叶子节点:
没有子节点的节点
非终端节点:
就是非叶子节点
节点的度:
字节点的个数
树的度:
最大节点的度为该树的度
分类:
一般的树 : 子节点的个数不受限制
二叉树: 子节点的个数最多为两个,子节点的位置不可更改
分类:
一般二叉树:
满二叉树:在不添加树的层数的前提下,无法在添加一个节点的二叉树
完全二叉树: 如果只删除了满二叉树的最底层最右边连续的若干个节点,所形成的二叉树称之为完全二叉树
森林:n个互不相交的树的集合
存储:
二叉树的存储:
连续存储【数组】:(完全二叉树)
优点:查找 父节点 子节点 很快,判断某个节点有没有子节点
缺点: 内存耗用大
链式存储:
一个节点有两部分组成 :
数据域
指针域:
左指针
右指针
一般数的存储:
双亲表示法: 求父节点方便
孩子表示法: 求子节点方便
双亲孩子表示法: 求父节点和子节点方便
二叉树表示法:
将一般书转化成二叉树:
保证任何一个节点的左指针指向第一个孩子节点,右指针指向兄弟节点
森林的存储:
二叉树表示法:
第二步: 每一个树的右节点是相邻树的根节点
第一步: 将树转化成二叉树
树 的定义 C语言
最新推荐文章于 2023-09-17 22:54:15 发布