用最简单的数组去实现队列

用数组去实现队列

在上一节中我们是用数组去实现了客栈的功能,那么我们在这节中学习如何用数组去实现队列的功能

队列是一种先进先出的数据结构(fisrt-in-first-out)
队列之允许在后端进行插入操作,在前端进行删除操作。
利用数组按下表进行顺序存储,删除,插入元素的特点,可在数组的末尾插入元素,在数组的首部删除元素,这样可以实现用数组实现队列的功能
头文件定义的代码:
#ifndef  __QUEUE_H_
#define __QUEUE_H_

#define MAX_NUM 100

int is_empty();

int is_full();

int pop_queue();

void push_queue(int element);

int getQueueEnd();

int getQueueTop();


#endif
queue.c文件的实现:
#include"queue.h"

int queueElements [MAX_NUM];

unsigned int position = 0;

static void removeQueueTop(int index);

int is_empty(){
    return position == 0;
}

int is_full(){

    return position >= MAX_NUM;

}

int pop_queue(){
    if(is_empty()){
        return 0;
    }   

    int element = queueElements[0];
    removeQueueTop(0);
    position--;

    return element;
}

static void removeQueueTop(int index){
    int i;
    for(i= index; i< position-1 ; i++){
        queueElements[i] = queueElements[i+1];
    }   
}

void push_queue(int element){
    if(is_full()){
        return;
测试部分的代码:
include<stdio.h>  
#include"queue.h"

int main(int argc,char* argv []){
    push_queue(2);        
    push_queue(15);
    push_queue(17);                   
    push_queue(8);
    printf("%d\n",pop_queue());
    printf("%d\n",pop_queue());
    push_queue(100);

    printf("%d\n",pop_queue());

    return 0;                  
}

最后的结果为:
2
15
17

注:小弟是一个C的初学者,如果有什么不对,或者需要指正的地方,请及时指正,以上两篇只是用最基础的C的数组来实现栈和队列,在后续会用指针的用法对其进行更深层次的优化。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值