随笔分类 - 数据结构——Java实现
摘要:数据结构之红黑树(一) 为什么是要使用红黑树? 二叉树在平均情况下的运行时间已经是对数级别,为什么还要使用红黑树?原因很简单,二叉树在最坏情况下的查找时间为线性级别,导致这种最坏情况的原因是数据的插入找特定的顺序(从大到小或者从小到大),致使数的高度过大,也就是树的不平衡,因而导致了查询效率的下降。
阅读全文
摘要:数据结构 二叉查找树(BST)的java实现 二叉查找树(BST)是一种能够将链表插入的灵活性和有序数组查找的高效性相结合的一种数据结构。它的定义如下: 二叉查找树是一种二叉树,它的每个节点的key都大于它左子树中的任意节点的key小于它右子树中的所有节点的key。 本文对二叉树查找树的基本功能进行
阅读全文
摘要:数据结构 堆栈、队列补充 1. 两个队列实现一个栈 基本思想:(总保证一个队列的数据为空) 压栈:永远将数据添加到非空队列。 弹栈:将n-1个元素出队,并添加到另外一个空的队列,然后poll第n个元素。 代码实现 2. 两个栈实现一个队列 基本思想 入队:总是往第一个栈中添加数据 出队:如果第二个栈
阅读全文
摘要:数据结构 队列 1. 基本特点 队列是一种很重要的抽象数据结构,它具有以下两个特点: (1)先进先出(First In First Out,FIFO) (2)使用front和rear两个指针分别指向队头和队尾 2. 代码实现 基于数组的循环队列 基于链表的队列
阅读全文
摘要:数据结构 堆栈 1. 堆栈图解 堆栈是一种相同数据类型的集合,所有的操作都在栈顶进行,具有后进先出(Last In First Out,LIFO)的特点,堆栈在计算机中的应用相当广泛,其基本示意图如下: 2. 堆栈实现 本文通过两种方式实现堆栈数据结构:(1)基于动态数组的堆栈实现;(2)基于链表的
阅读全文
摘要:数据结构之双向链表 双向链表区别于单向链表的地方在于:前后两个节点是双向关联的,即可通过前一个节点的next指针域访问后一个节点,由后一个节点的prev域访问前一个节点,其逻辑结构图如下所示: 在这里,头结点和尾节点均为空节点(其节点中存储的数据为null),可在吗构造方法将数据初始化为null。
阅读全文
摘要:数据结构(一) 单链表的实现 一. 单链表的简单介绍 单链表在整个数据结构中可以说是相对比较简单的,但是它的作用却不可忽视,许多相对复杂的数据结构都是基于单链表实现的。在这里我们简单介绍一下单链表。 单链表有节点构成,每个节点封装了数据和下一个节点的地址,最后一个节点指向null。 二. 单链表的j
阅读全文
浙公网安备 33010602011771号