专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 一文看懂队列和栈的主要区别

一文看懂队列和栈的主要区别

更新时间:2022-11-10 09:45:02 来源:星辉 浏览610次

栈与队列的比较

Stack和Queue的主要区别在于stack 是LIFO类型,而Queue是FIFO类型的数据结构。LIFO代表后进先出,即如果我们将数据放入堆栈,那么最后一个条目将首先被处理。虽然FIFO代表先进先出,但它意味着队列中的第一个条目将被首先处理。

比较表

队列
仅允许在一端插入或删除元素的线性列表称为堆栈 允许在一端插入并在另一端删除的线性列表称为队列
由于元素的插入和删除是在堆栈的一端执行的,因此只能以相反的插入顺序删除元素。 由于一个元素的插入和删除是在队列的另一端进行的,所以只能按照插入的相同顺序删除元素。
堆栈称为后进先出 (LIFO)列表 队列称为先进先出 (FIFO)列表。
最多和最少可访问的元素被称为堆栈的顶部和底部 元素的插入在 FRONT 端执行,从REAR端执行删除
示例:堆栈正在将盘子一层一层地排列。 示例:临时商店中的普通队列。
插入操作称为PUSH,删除操作称为POP 插入操作称为ENQUEUE,删除操作称为QUEUE
任何语言的函数调用都使用 Stack 操作系统的任务调度使用队列
要检查堆栈是否为空,使用以下条件:TOP == -1 要检查队列是否为空,使用以下条件:FRONT == -1 || 前 == 后 + 1
要检查堆栈是否已满,使用以下条件:TOP == MAX – 1 要检查队列是否已满,使用以下条件:REAR == MAX – 1
Stack 只需要一个引用指针。 一个队列需要两个引用指针。

检查堆栈是否为空的条件:

int isEmpty ()  
{ 
如果(顶部==-1 ) 
返回1;
否则返回0; 
}

检查堆栈是否已满的条件

int isFull()
{
    if(top==MAX-1)
        return 1;
    else
        return 0;
}

队列

检查队列是否为空的条件:

int isEmpty()
{
    if(front==-1 || front==rear+1)
        return 1;
    else
        return 0;
}

检查队列是否已满的条件:

int isFull()
{
    if(rear==MAX-1)
        return 1;
    else
        return 0;
}

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>