动态数组
线性结构 + 顺序存储 = ?
线性表 栈 双端栈 队列 循环队列 双端队列
静态数组与动态数组
Java内置数组的特点:
数组的长度一旦确定则不可更改
数组只能存储同一类型的数据
数组中每个存储空间地址是连续且相等的
数组提供角标的方式访问元素
Java内置数组的缺点:
长度不可变,容量会出现不够的情况
地址连续且提供角标访问很快,但会出现增删元素的情况
数组只有length这个属性,没有其他的方法
动态数组操作
容量不够,那就扩容
增删元素,增-元素后移,删-元素前移
只有length属性,用动态数组封装
size即表示数据的有效个数,也表示新元素将要进入的位置
动态数组就是顺序存储结构具体实现的核心思想
线性表的定义
零个或多个元素的有限序列
栈的定义
栈是限定仅在表尾进行插入和删除操作的线性表
我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)
不含任何数据元素的栈称为空栈
栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构
栈本身是一个线性表,其数据元素具有线性关系,只不过它是一种特殊的线性表而已
栈的插入操作,叫作进栈,也称压栈、入栈 栈的删除操作,叫作出栈,也称弹栈、
进栈操作如下:
出栈操作如下: