?# 栈与队列 栈 概念 栈:是限定仅在表尾进行插入和删除操作的线性表。 **栈顶(top):**允许插入和删除的一端,即表尾称为栈顶 栈底(bottom):表头称为栈底 栈是LIFO结构,后进先出。 与线性表相比,特殊之处在于 限制了线性表的插入和删除位置,始终在栈顶进行。 所以栈底是固定的,最先 ...
分类:
其他好文 时间:
2020-07-06 01:01:36
阅读次数:
62
线程安全: ArrayList 和 LinkedList 都是线程不安全的, 它们的方法之间都是不同步的. 底层数据结构: ArrayList 底层是使用 Object 数组; LinkedList 底层是使用双向链表数据结构. 快速访问随机元素: ArrayList 支持高效的快速访问随机元素, ...
分类:
其他好文 时间:
2020-07-06 00:37:16
阅读次数:
68
1.单个线性表+位置指针: //栈 int stack[LEN],top=-1; //入栈 stack[++top]=x; //出栈 x=stack[top--];//队列int queue[LEN],front=0,last=0;//入队queue[last++]=x;front=(front+1 ...
分类:
其他好文 时间:
2020-07-05 23:26:40
阅读次数:
112
什么是算法分析? 比较方面: 代码风格,可读性 计算资源占用 * 空间(内存)占用 * 执行时间占用 运行时间检测 python中的time模块,当前时间,基准点 >1970年0点0时0分0秒 不同运行环境(linux or windows? 移动端or服务器?),编程语言,因此用时间作为衡量指标不 ...
分类:
编程语言 时间:
2020-07-05 23:20:43
阅读次数:
100
LinkedList 数据结构 jdk1.8 LinkedList源码全分析 ...
分类:
其他好文 时间:
2020-07-05 21:24:47
阅读次数:
32
栈是一种基本的数据结构 基本概念 栈(Stack):具有一定操作约束的线性表。 只在一端(栈顶,Top)做插入、删除操作 插入数据:入栈(Push) 删除数据:出栈(Pop) 后入先出:Last In First Out(LIFO) 抽象数据类型描述 类型名称:栈 数据对象集:一个有0个或多个元素的 ...
分类:
其他好文 时间:
2020-07-05 19:36:04
阅读次数:
71
基本概念 二叉树:一个有穷的结点的集合,这个集合可以为空,若不为空,则它是由根节点和称为其左子树和右子树的两个不相交的二叉树组成。 有几种特殊的二叉树,分别是斜二叉树、完全二叉树和满二叉树。 二叉树的几个重要性质: 一个二叉树第i层的最大结点数为:2^(i-1),i>=1 深度为k的二叉树有最大结点 ...
分类:
其他好文 时间:
2020-07-05 19:34:20
阅读次数:
44
线性表是最基本的数据结构。 基本概念 线性表(Linear List):由同类型数据元素构成有序序列的线性结构。 表中元素个数称为线性表的长度 线性表没有元素时称为空表 表起始位置为表头,表结束位置为表尾 抽象数据类型描述 类型名称:线性表 数据对象集:线性表是n个元素构成的有序序列(a1,a2,· ...
分类:
其他好文 时间:
2020-07-05 19:33:45
阅读次数:
62
参考:《Redis设计与实现》 RedisObject Redis底层的所有数据结构:都是基于对象的;RedisObject 类型; 编码; 指向实际数据的指针; typedef struct redisObject{ // 类型 unsigned type:4; // 编码 unsigned en ...
分类:
其他好文 时间:
2020-07-05 19:30:02
阅读次数:
88
对于一般的二叉搜索树,搜索树结点不同插入次序,将导致不同的深度和平均查找长度ASL。甚至在极端的情况下,二叉搜索树会退化称线性的链表,导致插入和查找的复杂度下降到O(n),所以便提出了平衡二叉树的概念。 基本概念 平衡因子(Balance Factor, BF):BF(T)=hL-hR,其中hL、h ...
分类:
其他好文 时间:
2020-07-05 19:17:26
阅读次数:
68