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

数据结构栈和队列的区别

更新时间:2022-07-07 11:08:36 来源:星辉 浏览696次

栈与队列的比较

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 () 
{
    如果(顶部==MAX-1 )
        返回1;
    别的
        返回0;
}

队列

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

int isEmpty () 
{
    如果(前==-1 || 前==后+1 )
        返回1;
    别的
        返回0;
}

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

int isFull () 
{
    如果(后==MAX-1 )
        返回1;
    别的
        返回0;
}

 

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

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