静态数组实现的队列

/*_############################################################################
  _##
  _##  静态数组实现的队列
  _##  Author: xwlee                        
  _##  Time: 2006.12.31 
  _##  Chang'an University
  _##  Development condition: win2003 Server+VC6.0
  _##
  _##  static_array.cpp 文件
  _##########################################################################*/
#include "stack.h"
#include <stdio.h>

#define QUEUE_SIZE  5  // 队列中元素的最大数量
//#define ARRAY_SIZE  ( QUEUE_SIZE ) // 数组的长度
#define ARRAY_SIZE  ( QUEUE_SIZE + 1) // 数组的长度 (方法2)

// 用于存储队列元素的数组和指向队列头和尾的指针
static QUEUE_TYPE  queue[ ARRAY_SIZE ];
static size_t  front = 1;
static size_t  rear = 0;
static size_t  qnumber = 0; // 引入新变量,记录队列中的元素数量(方法1)

// create_stack函数
int create_stack( size_t size )
{
    return 1;
}

// destroy_stack函数
int destroy_stack( void )
{
    return 1;
}

// insert函数
void myinsert( QUEUE_TYPE value )
{
    if( is_full() )
    {
        printf("queue is already full, insert is false./n");
        exit(0);
    }
    rear = ( rear + 1 ) % ARRAY_SIZE;
    queue[ rear ] = value;
    printf("rear=%d", rear);
    qnumber++;   // 引入新变量使用.(方法1)
}

// delete函数
void mydelete( void )
{
    if( is_empty() ) // 若队列已空,条件成立.
    {
        printf("queue already empty, delete is false./n");
        exit(0);
    }
    front = ( front + 1 ) % ARRAY_SIZE;
    printf("front=%d", front);
    qnumber--;  // 引入新变量使用.(方法1)
}

// first函数
QUEUE_TYPE first( void )
{
    if( is_empty() ) // 若队列已空,条件成立.
    {
        printf("queue already empty./n");
        exit(0);
    }
    return queue[ front ];
}

// is_empty函数
int is_empty( void )
{
    return ( rear +1 ) % ARRAY_SIZE == front;
    //return  qnumber == 0;  // 引入新变量使用.
}

// is_full函数
int is_full( void )
{
    return ( rear +2 ) % ARRAY_SIZE == front;
    //return  qnumber == ARRAY_SIZE;  // 引入新变量使用.
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值