数据结构(一)线性数据结构

数据结构分为:线性数据结构、非线性数据结构

线性数据结构包括:数组、线性表、栈、队列、串

非线性数据结构包括:多维数组、集合、树、Hash

1、数组

在Java中常用的数组util有String[],int[],ArrayList,Vector,在这些util中ArrayList是非线程安全的,Vector是线程安全的,方法同步,在ArrayList中封装了一些数组的基本操作。
数据这种数据结构是通过下标进行操作的,因此查询 效率直接通过下标查询,效率很高,但是 插入操作时后面的元素需要向后移动 一位。因此插入 操作效率比较低,相同的对于删除 操作,删除 元素时也 需要元素向前移动一位,因此效率也比较低。

2、线性表

线性表的存储 结构分为顺序存储和链表存储,顺序存储中元素是连续的,链表存储是不连续 ,但是链表上的每个节点 都知道自己的下一个节点是谁,以及上一个 节点 是谁,具体用 Node来实现。常见的线性表有 LinkedList、单链表、双向链表、循环链表。

对于线性表的操作方法,在线性表中插入的方法只需要改变 前后两个节点即可,因此插入效率比较高。在 线性表中查询某个元素 时需要遍历该元素之前的所有元素才能查找到该元素,因此查询效率 比较低。

3、栈

对于栈来说,最主要的实现策略是先进后出,所以常用的方法有push(压栈)、pop(出栈)。
同时对于Java的jvm中也实现了此 数据结构 ,jvm中的线程栈,通过线程栈保证了线程的执行顺序。

4、队列

队列是只允许在队头、队尾进行 操作,因此队列 的基本操作 方法有:add()、remove()、poll()等。

5、串

是由N个字符组成的优先序列。在Java里面就是指String,而String里面是由chat[]来进行储存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值