Java学习——数据结构(数组、栈、队列一)

若有看到这篇文章的小伙伴发现有内容错误,请告诉我改正。

一、数组

1)概念:数组是存储于一个连续空间且具有相同数据类型的元素集合。

2)逻辑结构和存储结构:

逻辑结构关注的是数据元素之间的关系,而不考虑数据的物理存储方式。对于数组而言,它的逻辑结构通常表现为线性结构,即数据元素之间存在一个顺序的关系。例如,一个整型数组 int[] arr = {1, 2, 3, 4}; 中的元素按照存储的顺序(索引0, 1, 2, 3)排列,形成一个序列。

存储结构关注的是数据元素在内存中的实际存储方式。

  • 连续存储:这是最常见的数组存储方式。在内存中,数组的元素是连续存储的,也就是说,数组中的每个元素都紧挨着前一个元素存储。例如,上面的整型数组在内存中会占据一段连续的空间。

  • 非连续存储:在某些特殊情况下,如使用稀疏数组(Sparse Arrays)时,数组的元素可能不是连续存储的。这种情况下,通常会有额外的数据结构(如链表)来维护元素的索引和实际存储位置之间的关系。

3)访问:采用数组下标访问。

连续存储时,第i个元素的地址=基地址+i * 元素类型所占的内存数。

4)特点:高效随机访问,低效删除和插入。

二、栈

1)概念:

栈是一种顺序结构,只允许在一端进行插入和删除,插入删除的一端叫栈顶,另一端叫栈底。栈是一种先进后出(后进先出)的数据结构。插入数据的操作叫入栈,删除数据的操作叫出栈。用英文表示为Last in Frist out,LIFO。

2)存储方式:

①基于数组的栈

②基于链表的栈

三、队列

1)概念:

只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进的FIFO(First in First Out)队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头 (Head/Front)。

2)存储方式:

①基于数组的队列

②基于链表的队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值