社区
Java SE
帖子详情
为什么stack实现栈和LinkedList实现栈的输出顺序不同
tn_java
2016-12-07 11:17:21
比如通过stack类依次push1,2,3,4,5,输出顺序就是12345.通过LinkedList类依次push12345,输出顺序就是54321.按照栈的定义,应该后者是正确的。为什么stack类会这样子输出结果呢
...全文
272
4
打赏
收藏
为什么stack实现栈和LinkedList实现栈的输出顺序不同
比如通过stack类依次push1,2,3,4,5,输出顺序就是12345.通过LinkedList类依次push12345,输出顺序就是54321.按照栈的定义,应该后者是正确的。为什么stack类会这样子输出结果呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jingwenlei
2016-12-07
打赏
举报
回复
没有为什么,背下来!
萧乡月夜
2016-12-07
打赏
举报
回复
这两个push的含义不一样哦~看看源码就懂了 很简单的
XiaoYe4Java
2016-12-07
打赏
举报
回复
测试了一下,一样呀,都是54321
小阎王
2016-12-07
打赏
举报
回复
stack的底层实现是数组,LinkedList的底层实现是双向链表, 你说的LinkedList的输出是貌似按照栈的定义,其实跟那没关系 跟遍历机制有关,stack就是自低向上遍历的自然就那么输出了,没什么奇怪的。
使用
Link
ed
List
实现
堆
栈
及Set集合特点、遍历方式、常见
实现
类
堆
栈
(
stack
)是一种常见的数据结构,一端被称为
栈
顶,另一端被称为
栈
底,它遵循"先进后出"(Last In First Out,LIFO)的原则。在堆
栈
中,最后放入堆
栈
的元素将首先被移除。在Java中,可以使用数组或链表来
实现
堆
栈
。常见的
实现
方式包括使用Java的自带
栈
类(
Stack
类或Deque接口的
实现
类),或者使用
Link
ed
List
类来自行
实现
堆
栈
。堆
栈
在编程中有许多实际应用,例如算术表达式求值、函数调用
栈
、撤销/重做操作等等。
LInk
ed
List
实现
队列(Queue)和堆
栈
(
Stack
)
Link
ed
List
是用双向链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。 底层是一个双向链表,链表擅长插入和删除操作,队列和
栈
最常用的2种操作都设计到插入和删除 通过
Link
ed
List
继承关系图我们可以发现,Lin
ed
List
实现
了Queue接口,Queue接口与
List
、Set同一级别,都是继承了Collection接口。Queue接口窄化了对
Link
ed
List
的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直
链表
Link
ed
List
、堆
栈
Stack
、集合Set
链表
Link
ed
List
Link
ed
List
也像 Array
List
一样
实现
了基本的
List
接口,但它在
List
中间执行插入和删除操作时比 Array
List
更高效。然而,它在随机访问操作效率方面却要逊色一些。
Link
ed
List
还添加了一些方法,使其可以被用作
栈
、队列或双端队列(deque) 。在这些方法中,有些彼此之间可能只是名称有些差异,或者只存在些许差异,以使得这些名字在特定用法的上下文环境中更加适用(特别是在 Queue 中)。例如: getFirst() 和 elemen
Java-
Stack
与
Link
ed
List
实现
。
我们都知道
栈
有两种
实现
方式。 一个用
Stack
类。一个用
Link
ed
List
类
实现
。那么它们之间有什么
不同
呢? 我们先用一段代码显示一下。 public static
Link
ed
List
<String>
stack
; public static
Stack
<String>
stack
1; public static
Link
ed
List
<String>...
Java中双端队列Deque、
栈
Stack
栈
的
实现
在java中,
栈
有两种
实现
方式,一个是用
Stack
类,一个用
Link
ed
List
类
实现
。 //用
Stack
实现
栈
public static
Stack
<String>
stack
1; //用
Link
ed
List
实现
栈
public static
Link
ed
List
<String>
stack
2; public static void init() {
stack
1 = new
Stack
<>();
stack
1.push("1");
stack
1.
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章