java链表及栈结构与队列、链表的区别

=============链表的理解和实现==============
之前写过队列,是用Object型的数组实现的,因为数组有下标,对于所创建的队列实现增删改查的功能就比较容易一些。现在理解了链表的基本含义,便可以用链表的性质来实现跟队列一样的功能。
链表,就是由一个一个结点组成的一类数据结构,跟队列一样用来存放数据,不过它跟队列不同的就是每一个结点是由数据及对下一个结点的引用两部分组成的,就是说每一个结点比队列的每一个元素多了一个对下一个结点的引用的“数据”。
其实用链表实现队列的思路很简单,跟队列的实现是同样的道理,不过理解容易混淆的就是队列有下标,而链表没有,可以利用的就是每个结点里面的对下一个结点的引用。既然如此,在实现相关功能的时候就要理解清楚对下一个结点引用的性质,保证链表的完整性及连续性,如在特定位置插入一个结点时,要注意的就是当新结点插入时,要从取定位置断开链表,并重新连接好链表(要特别注意首结点和尾结点的情况)。
总之一定要保证首结点和尾结点的位置正确,这一点非常重要,在打印链表信息时才不会出错。

==============栈================
栈是一种数据结构,遵循先进后出的原则,只有一个口,像一个一段封住的管道一样的结构。一般可以用数据或是链表来实现栈结构的创建,栈可以用来实现建树,拆分表达式,查找等功能。它与队列、链表之间的区别在于数据的插入、取出方式不同,因此实现的操作数据功能也就不同,并决定了它们的不同用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值