【随笔】队列与链表

本文探讨了队列与链表的区别,并强调队列作为先进先出的数据结构,其实质是可自增长的数组。作者分享了如何在Java中实现自定义队列,关注于生成、插入、删除等基本操作,并考虑了效率问题,如数组扩张的策略。同时,文章提及在Java中利用全局变量简化数组更新。此外,提到了实现链表类的简易方法,附带了Java代码示例。
摘要由CSDN通过智能技术生成

怕混淆概念,先提一下什么是“堆”,“栈”,"队列"以及它们的区别。

这里有一篇博客就此展开了论述,感兴趣可去看看并支持一下原博主:什么是“堆”,“栈”,“堆栈”,“队列”,它们的区别

说到队列,会想到先进先出、x进y出等等这样的性质。队列与链表不同,本质上就是个能够实现自增长的数组,是线性的。不管在已经写好的c++库里,java的API中它们是怎样的一个特性,总会有我有一个想要的功能,但是原先写好的包里不支持的时候。所以,就来自己完成一个目标队列,以实现自己的需求。

要写一个队列,那肯定首先要满足最基本的需求,比如:生成、插入、删除、弹出、复制(c++中可以重载’='运算符)、长度、输出数据。其他特殊要求比如排序等等。

通过java实现一个自己的队列,唯一需要注意的地方就是,在生成队列的时候,由于本质是数组的扩张,考虑到效率问题,就不同情况每次申请扩张的那一部分的大小有所不同,可以是100、1000、INT_MAX…其次在java中实现这个队列自增长比较方便的地方是,局部变量转为全局变量,这在申请更大的数组之后更新原数组的操作中起了重要作用。

而同理,想要实现自己的一个链表类也很简单,下面附上java代码:

public class Node {

	private Node head;
	private Node next;
	private Node current;
	private Object data;
	private 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值