欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 数据结构之队列

数据结构之队列

2025/5/12 13:00:38 来源:https://blog.csdn.net/2301_76231794/article/details/145954315  浏览:    关键词:数据结构之队列

一、队列的概念

队列是一个有序列表,可以用数组或者是链表来实现的。遵循的是先入先出的原则,就是先存入队列的数据要先取出,后面存的需要后面取出。插入的一端称为队尾,删除的一端称为队头,队列里没有元素就称它为空队列。

队列包括顺序队列和链式队列。

顺序队列通常是采用了一维数组存储队列里的元素,另外是增加两个指针分别是指向了数组里的队首元素和队尾的元素。其中对头的指针称为front,队尾的称为rear。

链式队列就是采用单链表作为存储表示,链式队列的队头指针指向单链表的第一个结点,队尾指针指向单链表的最后一个结点。链式队列的队头元素存放在单链表的第一个结点内,若要从队列中退出一个元素,必须从单链表中删去第一个结点,而存放着新元素的结点应插在队列的队尾,即单链表的最后一个结点后面,这个新节点将成为新的队尾。

二、顺序队列的实现

接下来我们来实现一下顺序队列,首先我们要初始化队列:

class ListQueue{//数组的最大容量private int maxSize;//对头指针private int front;//队尾指针private int rear;//数组大小private int size;//队列数组private int[] queue;public ListQueue(int maxSize){this.maxSize=maxSize;this.front=0;this.rear=0;this.size=0;queue=new int[maxSize];}
}

判空的方法:

public boolean isEmpty(){return front==rear;}

判满的方法:

public boolean isFull(){return rear==maxSize;}

元素入队的操作:

public void addNumber(int num){if(isFull()){throw new RuntimeException("队列满,无法入队");}queue[rear]=num;rear++;size++;}

元素出队的操作:

public int getNumber(){if(isEmpty()){throw new RuntimeException("队列空,无法出队");}int num = queue[front];front++;size--;return num;}

遍历队列的元素:

public void showQueue(){if(isEmpty()){throw new RuntimeException("队列空,无法遍历");}for (int i=front;i<rear;i++){System.out.println(queue[i]);}}

获取队列的元素个数:

public int getSize(){return size;}

 

 

 

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词