队列的基本用法(顺序存储结构)

#include <stdio.h>
#include <stdlib.h>

#define  MAXSIZE   10
#define  DataType  int

typedef struct
{
 DataType Data[MAXSIZE];
 int      Front;
 int      Rear;
}SeQueue;

SeQueue  *InitialSeQueue(void);
int      EnterSeQueue(SeQueue *S,DataType Elem);
int      OutSeQueue(SeQueue *S,DataType Elem);
int      IsEmptySeQueue(SeQueue *S);
int      IsFullSeQueue(SeQueue *S);
int      DestroySeQueue(SeQueue *S);

SeQueue  *InitialSeQueue(void)
{
 SeQueue *S=NULL;

 S=(SeQueue*)malloc(sizeof(SeQueue));
 S->Front=-1;
 S->Rear=-1;
 return  S;
}

int      EnterSeQueue(SeQueue *S,DataType Elem)
{
  if(!IsFullSeQueue(S))
  {
  S->Data[++S->Rear]=Elem;
  printf("Elem that enter the queue: %d \n",S->Data[S->Rear]);
  return 0;
  }
  else
  {
      printf("Full queue , ends the program.\n");
      exit(0);
  }
}

int      OutSeQueue(SeQueue *S,DataType Elem)
{
      int i=0;

      if(IsEmptySeQueue(S))
      {
          printf("Empty queue,ends the program.\n");
          exit(0);
      }
      else
      {
          Elem=S->Data[0];
          printf("Elem that out the Queue : %d \n",S->Data[0]);
          for(i=S->Front+1;i<S->Rear;i++)
          {
              S->Data[i]=S->Data[i+1];
          }
      }
}

int      IsEmptySeQueue(SeQueue *S)
{
    return(-1==S->Rear);
}

int      IsFullSeQueue(SeQueue *S)
{
    return(MAXSIZE==S->Rear);
}

int      DestroySeQueue(SeQueue *S)
{
    free(S);
    S=NULL;
    return 0;
}

int main()
{
    SeQueue   *S=NULL;
    DataType  data=0;

    S=InitialSeQueue( );
    EnterSeQueue(S,1);
    EnterSeQueue(S,2);
    EnterSeQueue(S,3);
    EnterSeQueue(S,4);
    OutSeQueue(S,data);
    OutSeQueue(S,data);
    OutSeQueue(S,data);
    DestroySeQueue(S);
    return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值