一文看懂队列和栈的主要区别 - 极悦
首页 课程 师资 教程 报名

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

  • 2022-11-10 09:45:02
  • 815次 极悦

栈与队列的比较

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;
}

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交