算法和数据结构
吱駍
这个作者很懒,什么都没留下…
展开
-
数据结构与算法----平衡二叉树(AVL)
在进入本次课题时,我们要先了解什么是二叉排序树,不了解的伙伴可以看我的博客[数据结构与算法------树(树、二叉树、哈夫曼树)];了解的伙伴可以跳过直接进行的我们的课题(往下看)我已经了解了完全二叉树、哈夫曼树、二叉排序树,为什么还要学习平衡二叉树呢?学习它的好处是什么?我们知道树的查找效率是由树的高度决定的,而平衡二叉树的作用是将树的高度达到最小,因此学习平衡二叉树可以提高程序的运行效率平衡二叉树是什么?它是一棵二叉排序树,但是它(父节点)的左右两个子树的高度差(平衡因子)的绝对值不超过1,并且左原创 2020-08-16 15:38:15 · 379 阅读 · 0 评论 -
数据结构与算法------树(树、二叉树、哈夫曼树)
(一)、树1、什么是树?在编程中,树表示的是一种由N个节点的有限集合而构成的树形存储结构,它有且仅有一个"根"节点(没有父节点),其余节点形成的树(互不相交)称为"根"节点的子树2、树的结构图如上图所示,A是这棵树的"根"节点,A节点有3个子树,如下:B节点的子树是E,C节点的子树是F,D节点的子树是G和H3、树型结构的好处将数据形成层次关系管理,效率较高4、树的基本术语节点的度: 节点的子树个数树的度: 树中所有节点中最大的度叶节点: 度为0的节点父节点: 有子树的节点,这个节原创 2020-08-08 22:49:39 · 579 阅读 · 0 评论 -
数据结构与算法--------队列的两种实现(顺序表、链表)
(一)什么是队列?队列又叫先进先出表,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和另一端进行取数据操作,插入数据的一端是队尾,取数据的一端是队头(二)队列取、添加数据操作的抽象形式为了形象的表达队列,使用了管道进行表示(因为队列只能在队头和队尾进行操作,而它刚好有两端的出口)(在实际队列中是不存在的),在管道中存储的数据是有序的,它按照添加数据的先后来进行排序,并且管道中的操作只能在两端进行,因此说明队列是无法进行中间插入操作,它只能在队尾中进行添加(三)队列的结构1、顺序表原创 2020-08-02 13:43:14 · 278 阅读 · 0 评论 -
数据结构与算法-----LRU算法的实现
(一)定义LRU是Least Recently Used的缩写,即最近最少使用、选择最久未使用的页面予以淘汰,它的目的是为了解决数据缓存空间不足时数据淘汰的顺序(二)原理LRU算法是基于单向链表实现的,它的实现特点如下1、添加新数据时添加在链表的头部2、...原创 2020-07-28 18:49:59 · 617 阅读 · 0 评论 -
数据结构----单向链表和双向链表的那些事(代码实现)
(一)链表的定义用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的(二)单向链表1、定义在数据存储中,使用单一指针(java中称对象)指向下一个存储单元的位置2、存储结构3、代码实现Node.java> /** * 节点 */public class Node { private Node next; private Object value; public Node getNext() { ret原创 2020-07-27 14:25:22 · 605 阅读 · 0 评论 -
数据结构--------顺序存储
在进入本次课题时,我们需要了解什么是数据结构,顺序表的概念(一)数据结构1、什么是数据结构数据结构是数据元素相互之间存在一种或多种特定关系(先后存储、组合、排列等)的集合2、数据结构包含什么?数据结构包含数据项和数据对象数据项:一个数据元素可以由若干个数据项组成,如java Bean类中的变量数据对象:由相同性质元素的组合,是数组的子集,如java Bean类组成的集合中的子集3、数据结构中元素之间形成的关系分为哪2中结构关系?逻辑结构:是指数据对象中数据元素之间的相互关系,如集合结构、线原创 2020-07-24 14:45:17 · 1377 阅读 · 0 评论