加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据结构(四)——线性结构之队列

发布时间:2020-12-15 04:47:14 所属栏目:百科 来源:网络整理
导读:1.队列 队列是先进先出的线性表。在具体应用中通常用链表或者数组来实现。 2.对队列的操作 队列我们可以想像成一个数组,每次插入插入在数组的最后一位,取从第一位来

1.队列

队列是先进先出的线性表。在具体应用中通常用链表或者数组来实现。

2.对队列的操作

队列我们可以想像成一个数组,每次插入插入在数组的最后一位,取从第一位来取。

队列主要的操作有以下几个:

(1)入队;

(2)出队;

(3)判断队列是否为空。

package cn.kimtian.array.queue;

/**

* 队列的操作

*

* @author kimtian

*/

public class MyQueue {

/**

* 队列的底层我们可以使用数组来存储数据

*/

int[] elements;

public MyQueue() {

elements = new int[0];

}

/**

* 入队操作

*

* @param element 入队元素

*/

public void addQueue(int element) {

// 创建一个新的数组

int[] newArr = new int[elements.length + 1];

// 把原数组中的元素复制到新的数组中

for (int i = 0; i < elements.length; i++) {

newArr[i] = elements[i];

}

// 把添加的元素放入新数组中

newArr[elements.length] = element;

// 使用新数组替换老数组

elements = newArr;

}

/**

* 出队操作

*/

public int pollQueue() {

// 栈是空的

if (elements.length == 0) {

throw new RuntimeException("queue is empty!");

}

// 把数组的0的位置的元素取出来

int element = elements[0];

// 创建一个新的数组

int[] newArr = new int[elements.length - 1];

// 把原数组中的元素复制到新的数组中

for (int i = 1; i < elements.length; i++) {

newArr[i - 1] = elements[i];

}

// 使用新数组替换老数组

elements = newArr;

return element;

}

/**

* 判断队列是否为空

*/

public boolean isQueueEmpty() {

return elements.length == 0;

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读