第一篇:数据结构与算法

Posted lis-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一篇:数据结构与算法相关的知识,希望对你有一定的参考价值。

链表:

快慢指针:一个慢指针(一次走一步)一个快指针(一次走两步)

应用:判断链表是否有环,判断环的入口位置,求中位数,求倒数第k位等

判断链表是否有环:直接一快一慢去走,如果能碰到,那么说明有环,如果快指针走到NULL,那么无环

判断环入口位置:一快一慢走去,如果碰到了,那么将,慢指针放回入口,然后快慢指针同时步长为1,相遇的即为环入口

求中位数:快指针到重点,慢指针所在位置即为中位数,因为步长是他的两倍

 

树:

二叉排序树:也称为二叉查找树,遵从一个规则,左子树的所有节点的值都比当前节点值小,右子树所有的值都比当前节点的值大

然后直接每次插入一个节点直接去找就好了,但是这样建树会有最坏情况,有可能建出左斜树或者右斜树,复杂度和数组查找相似

 

平衡二叉树:基于二叉排序树的所有要求,因为二叉排序树有建树可能不完美的情况,所以,又有了平衡二叉树,前提就是必须书二叉排序树

平衡二叉树和二叉排序树的不同就是,平衡树多了平衡因子,当前节点的左右子树高度之差要小于等于1,所以平衡因子的值在【-1,1】之间

平衡二叉树构造的核心要点就是在于插入节点的时候如何把它给转换成平衡二叉树

参考博文:https://blog.csdn.net/isunbin/article/details/81707606

针对化成平衡二叉树的时候有四种情况

LL  LR  RR RL 

技术图片

 

 

技术图片

以上是关于第一篇:数据结构与算法的主要内容,如果未能解决你的问题,请参考以下文章

搜索中常见数据结构与算法探究

056期数据结构与算法:插入排序

Java学习笔记——浅谈数据结构与Java集合框架(第一篇List)

重温7种排序算法 第一篇,交换排序算法:冒泡排序快速排序

[ 数据结构 -- 手撕排序算法第一篇 ] 插入排序

我的第一篇随笔-------吹起启程之风