数据结构和算法学习--二叉排序树

数据结构和算法学习--二叉排序树一、二叉排序树介绍二叉排序树:BST(Binary Sort(Search) Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点比如针对前面的数据(7,3,10,12,5,1,9),对应的二叉排序树为:二、二叉排序树创建和遍历一个数组创建成...

Java 2020-02-16 PM 1573次 0条

数据结构和算法学习--堆排序

数据结构和算法学习--堆排序一、堆排序基本介绍(1)堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。(2)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,注意:没有要求结点的左孩子的值和右孩子的值的大小关系。(3)每个结点的值都小于或等于其左右孩子结点的值,称为小...

Java 2020-02-14 PM 1385次 0条

数据结构和算法学习--线索二叉树

数据结构和算法学习--线索二叉树一、线索二叉树应用案例应用案例说明:将下面的二叉树,进行中序线索二叉树,中序遍历的数列为}{8,3,10,1,14,6}思路分析:中序遍历的结果:{8,3,10,1,14,6}说明:当线索化二叉树后,Node节点的属性left和right,有如下情况:(1)left:指向的是左子树,也可能是指向的前驱节点。比如①节点left指向的左子树,而⑩节点的left指向...

Java 2020-02-12 PM 1377次 0条

数据结构和算法学习--顺序存储二叉树

数据结构和算法学习--顺序存储二叉树一、基本说明从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组,看下面的示意图。要求:(1)上图的二叉树的结点,要求以数组的方式来存放arr:[1,2,3,4,5,6](2)要求在遍历数组arr时,仍然可以以前序遍历,中序遍历和后序遍历的方式完成结点的遍历顺序存储二叉树的特点:(1)顺序二叉树通常只考虑完全二叉树...

Java 2020-02-11 PM 1739次 0条

数据结构和算法学习--二叉树查找指定节点

数据结构和算法学习--二叉树查找指定节点要求:(1)请编写前序查找,中序查找和后序查找的方法。(2)并分别使用三种查找方式,查找heroNO=5的节点(3)并分析各种查找方式,分别比较了多少次(4)思路分析图解使用前序,中序,后序的方式来查找指定的结点前序查找思路1.先判断当前结点的no是否等于要查找的2.如果是相等,则返回当前结点3.如果不等,则判断当前结点的左子节点是否为空,如果不为空,...

Java 2020-02-10 PM 1647次 0条

数据结构和算法学习--二叉树删除节点

数据结构和算法学习--二叉树删除节点要求(1)如果删除的节点是叶子节点,则删除该节点(2)如果删除的节点是非叶子节点,则删除该子树(3)测试,删除掉5号叶子节点和3号子树(4)完全删除思路分析完成删除节点的操作(1)如果删除的节点是叶子节点,则删除该节点(2)如果删除的节点是非叶子节点,则删除该子树思路首先先处理:考虑如果树是空树root,如果只有一个root节点,则等价将二叉树置空//然后...

Java 2020-02-09 PM 1463次 0条

数据结构和算法学习--二叉树遍历应用实例(前序,中序,后序)

数据结构和算法学习--二叉树遍历应用实例(前序,中序,后序)应用实例和说明和思路分析二叉树的前序,中序,后续的遍历步骤1.创建一颗二叉树2.前序遍历2.1 先输出当前节点(初始的时候是root节点)2.2 如果左子节点不为空,则递归继续前序遍历2.3 如果右子节点不为空,则递归继续前序遍历3.中序遍历3.1 如果当前节点的左子节点不为空,则递归中序遍历3.2 输出当前节点3.3 如果当前节点...

Java 2020-02-08 PM 1852次 0条

数据结构和算法学习--树结构的基础部分

数据结构和算法学习--树结构的基础部分一、二叉树1.1 为什么需要树这种数据结构(1)数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低画出操作示意图:(2)链式存储方式的分析优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节点,链接到链表中即可...

Java 2020-02-08 PM 1782次 0条

数据结构和算法学习--哈希表

数据结构和算法学习--哈希表一、哈希表(散列)(1)看一个实际需求,google公司的一个上机题:(2)有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址...),当输入该员工的id时,要求查找到该员工的所有信息。(3)要求:不使用数据库,尽量节省内存,速度越快越好=>哈希表(散列)二、哈希表的基本介绍散列表(Hash table,也叫哈希表),是根据关键...

Java 2020-02-07 PM 1307次 0条

数据结构和算法学习--菲波那切(黄金分割法)查找算法

数据结构和算法学习--菲波那切(黄金分割法)查找算法一、基本介绍(1)黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神奇的数字,会带来意向不到的效果。(2)菲波那切数列{1,1,2,3,5,8,13,21,34,55}发现斐波那契数列的两个相邻数...

Java 2020-02-06 PM 1682次 0条