菜单
  

        一个深度为K的二叉树需要 个存储空间,当K值很大并且二叉树的空结点很时,最坏的情况是每层只有一个结点,使用顺序存储结构来存储显然会造成极大的浪费,这时就应该使用链式存储结构来存储二叉树中的数据。
    0    1    2    3    4    5    6
    (a) 满二叉树
    0    1    2                6
    (b) 一般二叉树
    图1.3 二叉树的顺序存储
       (2)链式存储结构:二叉树的链式存储结构可分为二叉链表和三叉链表。二叉链表中,每个结点除了存储本身的数据外,还应该设置两个指针域left和right,分别指向其左孩子和右孩子(如图1.4(a)所示)。
        如果在二叉树中经常需要寻找某结点的双亲,每个结点还可以加一个指向双亲的指针域parent,如图1.4(b)所示,这就是三叉链表。
    (a) 二叉链表节点指针域                        (b) 三叉链表结点指针域
    left    data    right
    left    data    parent    right
    图1.4  二叉树链式存储的结点指针域
        二叉树还有一种叫双亲链表的存储结构,它只存储结点的双亲信息而不存储孩子信息,由于二叉树是一种有序树,一个结点的两个孩子有左右之分,因此结点中除了存放双亲信息外,还必须指明这个结点是左孩子还是右孩子。由于结点不存放孩子信息,无法通过头指针出发遍历所有结点,因此需要借助数组来存放结点信息。双亲链表中的元素存放的顺序是根据结点的顺序来决定的,也就是说把各个元素的存放位置进行调换不会影响结点的逻辑结构。其在物理上是一种顺序存储结构,这样的链表为静态链表。
        二叉树存在多种存储结构,选用何种方法进行存储主要依赖于对二叉树进行什么操作。而二叉链表是二叉树最常用的存储结构。
  1. 上一篇:《协议分析与测试》课程考试系统设计与实现
  2. 下一篇:C#公司销售薪资系统设计+需求分析+ER图
  1. 云虚拟环境下资源分配优化算法的研究

  2. 桌面云中虚拟机集中入域的研究和实现

  3. OpenGL虚拟人三维模型控制平台实现

  4. VRML虚拟数字校园的设计与实现

  5. 基于虚拟仿真体验式实践教学体系的构建

  6. WPF虚拟仿真学习平台的设计与开发

  7. 基于python的虚拟仪器技术研究及实现

  8. 电站锅炉暖风器设计任务书

  9. 当代大学生慈善意识研究+文献综述

  10. java+mysql车辆管理系统的设计+源代码

  11. 河岸冲刷和泥沙淤积的监测国内外研究现状

  12. 大众媒体对公共政策制定的影响

  13. 十二层带中心支撑钢结构...

  14. 中考体育项目与体育教学合理结合的研究

  15. 杂拟谷盗体内共生菌沃尔...

  16. 乳业同业并购式全产业链...

  17. 酸性水汽提装置总汽提塔设计+CAD图纸

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回