周四晚上参加交流会,最后一个环节是12期的同学进行技术分享,这次大家分享的是《树》。看见这个标题,我打算走了,因为这个知识点自考和软考都会考,也一直在学习,所以不想继续听下去了,自己下去再学习一下就OK了。正想着起身离开的时候,一个师妹问了一句:什么是树啊?树是用来做什么的?台下有小伙伴说,给大家先解释一下“节点”吧。于是我在大脑里开始想这几个问题的答案:树状图是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:

    每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;
    正想要给大家解释一下,突然想到,师弟师妹还没有学习《数据结构导论》这样给大家解释,他们很难听懂。可是我该怎么给大家解释树呢?怎么讲才能更加通俗呢?

   第一,关于数据和数据结构

   数据:官方解释:数据是信息的载体,是用来描述客观事物属性的数,字符,以及所有能输入到计算机中并能够给程序识别和处理的符号集合。我的理解:联系我们使用是SQL数据库,各种信息:文字,图片,数字,字母,符号等都可以存入到数据库中,而不仅仅是数字。
    数据结构:官方解释:指数据对象及其相互关系和构造方法,它可以用一个二元组{D,R}表示。其中,D是某种数据对象,是数据结构中数据(称为结点)的非空有限集合;R是该对象中所有数据成员之间的关系的有限集合;我的理解:结构就像我们的房子上的房梁和砖瓦。砖瓦是数据对象,是同种类型的数据集合;房梁搭建在砖瓦之间,沟通每块砖瓦,代表砖瓦之间的相互关系;我把构造方式比喻成房屋的样式,房屋有多种建造方式,中式,西式,南方的轻巧灵秀式,北方的敦厚朴实式。

    第二,关于树

    上面说的,数据结构中结点之间的关系称为数据的逻辑结构,树(二叉树,查找树,平衡树等)就是这逻辑结构中的一种。树中的每个结点代表相同数据的集合;结点之间的连线代表数据集合之间的前后,左右关系;树的类型有很多种:二叉树,树等等,这就是构造方式。数据可以二叉树的形式联系起来,也可以其他的形式联系起来。

    第三,转换方式

1、树转换成二叉树;

  i.连线
  连接树中所有兄弟节点;
  ii.去线
  保留第一个兄弟结点与父节点的连线,断开其他兄弟结点与父结点的连线;
  iii.旋转45°;
  过程如图:
                                                 
   将二叉树转换为树就是它的逆过程:先逆时针旋转45°,断开所有右子树之间的连线,将结点与其左结点对应的父结点相连。
                 

2、森林转换成二叉树;                                                  

  i.将每棵树转换为二叉树;
  ii.第一棵树第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点的右孩子,用线连接起来。
             
                                             

3、二叉树转换成森林;

(1)从根节点开始,若右孩子存在,则把与右孩子结点的连线删除。再查看分离后的二叉树,若其根节点的右孩子存在,则连线删除…。直到所有这些根节点与右孩子的连线都删除为止。

(2)将每棵分离后的二叉树转换为树。

       

                                                                 


    数据结构未了存储和查找方便,用各种树结构来存储文件,了解了树的结构和之间的转换方式,可以更好理解在存储或查找时格式的变换,以上是我对树的一些理解,如文中会有不严谨的地方,如果影响大家理解,欢迎大家斧正。
参考文献:
http://blog.csdn.net/liuzhanchen1987/article/details/7324935
http://www.cnblogs.com/zhuyf87/archive/2012/11/04/2753950.html
http://blog.sina.com.cn/s/blog_6b32b0870100w0bb.html

《数据结构导论》之树相关推荐

  1. 【算法基础】数据结构导论第四章-树.pptx

    上课的课件分享,适合教学用. 文末提供下载 已发布: 数据结构导论第一章-绪论 数据结构导论第二章-线性表 数据结构导论第三章-栈.队列和数组 本文参考百度文库的多篇文章. 如需下载ppt文件,请在本 ...

  2. 【算法基础】数据结构导论第七章-排序.pptx

    上课的课件分享,适合教学用. 文末提供下载 已发布: 数据结构导论第一章-绪论 数据结构导论第二章-线性表 数据结构导论第三章-栈.队列和数组 数据结构导论第四章-树 数据结构导论第五章-图 数据结构 ...

  3. 【算法基础】数据结构导论第六章-查找.pptx

    上课的课件分享,适合教学用. 文末提供下载 已发布: 数据结构导论第一章-绪论 数据结构导论第二章-线性表 数据结构导论第三章-栈.队列和数组 数据结构导论第四章-树 数据结构导论第五章-图 本文参考 ...

  4. 【算法基础】数据结构导论第五章-图.pptx

    上课的课件分享,适合教学用. 文末提供下载 已发布: 数据结构导论第一章-绪论 数据结构导论第二章-线性表 数据结构导论第三章-栈.队列和数组 数据结构导论第四章-树 本文参考百度文库的多篇文章. 如 ...

  5. 自考计算机数据结构导论,自考数据结构导论……

    望能对你有所帮助! " 如果你想通过数据结构导论这门课,至少得看两遍书吧?" 第一遍就是粗略的看一下,这样你心里也就有了底,也就大概的了解了数据结构导论这门课所 讲的内容,并且那里 ...

  6. 数据结构导论【三】之 栈、队列和数组

    感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:数据结构导论[二]之 线性表 文章目录 一.栈 1.栈的基本概念 ①定义 ②示意图 ③栈的特点 - 后进先出 ④栈的基本操作 ⑤栈的基本运算 2.栈 ...

  7. 数据结构导论大题汇总

    文章目录 前言:真题汇总搬家了!!! 一.应用题 二.算法设计题 前言:真题汇总搬家了!!! 自考本科数据结构导论(02142)历年(应用题+算法题)真题汇总[20年4月-22年10月] 一.应用题 ...

  8. 一种神奇的数据结构—小波树

    本文转载自:http://chuansong.me/n/2035229 Succinct简洁数据结构是一种来自生物信息学的研究成果,根据Wiki百科的定义是在数据压缩存储达到接近信息熵下界时仍然保持高 ...

  9. DF学数据结构系列——B树(B-树和B+树)介绍

    B树 定义:一棵B树T是具有如下性质的有根树: 1)每个节点X有以下域: a)n[x],当前存储在X节点中的关键字数, b)n[x]个关键字本身,以非降序存放,因此key1[x]<=key2[x ...

  10. Python__数据结构与算法——树、二叉树(实现先、中、后序遍历)

    目录 一.树 二.二叉树 树和前面所讲的表.堆栈和队列等这些线性数据结构不同,树不是线性的.在处理较多数据时,使用线性结构较慢,而使用树结构则可以提高处理速度.不过,相对于线性的表.堆栈和队列等线性数 ...

最新文章

  1. pandas改变dataframe的列的顺序、改变数据列的排列次序
  2. PHP框架之间有什么区别,php框架和设计模式区别
  3. Alamofire源码解读系列(九)之响应封装(Response)
  4. 【055】长江水文数据自动记录程序
  5. 给AI换个“大动力小心脏”之OCR异构加速
  6. 提高页面显示速度的秘技
  7. Android之BaseQuickAdapter.setOnItemChildClickListener点击死人也没反应的原因
  8. 分布式数据库拆分常用之法
  9. php页面自动生成,用户通过PHP填写表单后如何自动生成页面?
  10. 安全使用操作系统(Windows)
  11. Linux内核维护工作流程曝光,程序员必须拜读!
  12. 常用工具类(初级中的初级)
  13. 解密中国网络游戏业的黑暗骑士:响尾马(下)
  14. 计算机网络期末复习要点(谢希仁第8版)抱佛脚通用
  15. ADKAR模型简介(转)
  16. ×××全功能邮件系统(3)
  17. 利用Matlab进行根轨迹分析法
  18. Mind+实例5——打地鼠游戏
  19. 分类指标计算 Precision、Recall、F-score、TPR、FPR、TNR、FNR、AUC、Accuracy
  20. HowTo create a basic Maphack

热门文章

  1. Java中new一个对象的过程
  2. Android jobb 工具使用详解
  3. ViewPage的基本使用以及动画效果的添加
  4. 腾讯产品笔试策划+经验​
  5. Tbase 源码 (一)
  6. 白盒测试的逻辑覆盖辨析(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)
  7. VS2010的项目配置属性中文对照
  8. BUUCTF:sqltest
  9. nps内网穿透p2p隧道实战
  10. 龙芯2F 8089D 安装 debian 8.10