数据结构
文章平均质量分 62
gtx1502
这个作者很懒,什么都没留下…
展开
-
数据结构(三)队列 Queue
1 队列模型 1.1 定义 队列(queue)是插入在一端进行而删除在另一端进行的表 先进先出(FIFO)表 1.2 基本操作 enqueue(入队):在队尾(rear)插入元素 dequeue(出队):删除队头(front)的元素 1.3 特性 以常数时间运行 2 队列的实现...原创 2018-08-09 19:01:20 · 209 阅读 · 0 评论 -
数据结构(一)ArrayList & LinkedList
1. ArrayList VS LinkedList 1.1 ArrayList List 的可增长数组实现 优点:对 get 和 set 的调用花费常数时间 缺点:插入和删除开销昂贵 1.2 LinkedList List的双链表实现 优点:插入和删除开销小(若变动项位置已知,花费常数时间) 缺点:对 get 的调用开销昂贵 2. ArrayList 的简单实现 Arra...原创 2018-08-05 17:21:41 · 155 阅读 · 0 评论 -
数据结构(四) 二叉查找树
1 性质 每个节点的儿子不超过 2 个 对于树中每个节点 X,它的左子树中所有项的值都小于 X 中的项,右子树中所有项的值都大于 X 中的项 平均深度为 O(logN),最大深度为 N - 1 2 实现...原创 2018-08-12 15:37:11 · 157 阅读 · 0 评论 -
数据结构(二)栈 Stack
1. 栈模型 1.1 定义 栈(stack)是限制插入和删除只能在一个位置上进行的表(list),该位置是表的末端,称为栈的顶(top)。 1.2 基本操作 push(进栈) :插入元素 注 pop(出栈):删除元素...原创 2018-08-07 16:47:03 · 212 阅读 · 0 评论 -
数据结构(五) AVL树
1 概念 1.1 平衡 任何节点深度均不得过深 1.2 AVL树 每个节点的左子树和右子树高度最多差 1 的二叉查找树(空树高度定义为 -1) 带有平衡条件的二叉查找树 2 旋转 插入操作可能破坏平衡,需要通过旋转(rotation)进行修正 设需要重新平衡的节点为 t,t 的两棵子树高度差应该为 2(平衡时高度差 <= 1) 2.1 单旋转 对 t 的左儿子的...原创 2018-08-14 10:51:06 · 380 阅读 · 0 评论 -
数据结构(六)线段树
1 线段树 1.1 什么是线段树 线段树是一种二叉搜索树,它的每个节点保存一条线段(即数组的一段子数组) 1.2 作用 用于高效解决连续区间的动态查询问题 1.3 特点 时间复杂度为O(logN) 未优化的空间复杂度为2N 1.4 节点 线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间。例如父亲的区间是[ a , b ],那么 c = ( a + b ) /...原创 2018-08-27 20:51:33 · 210 阅读 · 0 评论