C和指针 第17章 经典抽象数据类型 17.3 队列

本文介绍了C语言中队列的数据结构,包括队列的先进先出特性、队列接口的设计,如insert、delete、first等函数,并讨论了如何在数组和链表中实现队列,特别强调了循环数组在实现队列时的挑战和解决方案。
摘要由CSDN通过智能技术生成

17.3 队列
    队列和堆栈的顺序不同:队列是一种先进先出(First-In First-Out)的结构。排列就是一种典型的队列---首先轮到的是排在队伍最前面的人,新入队的人总是排在队列的最后。
    17.3.1 队列接口
    与堆栈不同,在队列中,用于执行元素的插入和删除的函数并没有被普遍接受的名字,所以我们将使用insert和delete这两个名字。同样,应该在队列的头部还是尾部插入也没有完全一致的意见。从原则上说,因为它准确地描述了人们在排队时的实际体验。
    在传统的接口中,delete函数从队列的头部删除一个元素并将其返回。在另一种接口中,delete函数从队列的头部删除一个元素,但并不返回它。first函数返回队列中第一个元素的值但并不将它从队列中删除。
    程序17.5的头文件定义了后面那种接口。它包括链式和动态分配实现的队列需要使用create_queue和destroy_queue函数的原型。
    /*
    **一个队列模块的接口。 
    */ 
    #include <stdlib.h>
    
    #define QUEUE_TYPE int /*队列元素的类型*/
    
    /*
    **创建一个队列,参数指定队列可以存储的元素的最大数量。
    **注意:这个函数只适用于使用动态分配数组的队列。
    */
    void create_queue( size_t size );
    
    /*
    **destroy_queue
    **销毁一个队列。注意:这个函数只适用于链式和动态分配数组的队列。
    */
    void destroy_queue( vo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40186813

你的能量无可限量。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值