顺序队列的初始化,建立,插入,查找,删除。

---

//////////////////////////////////////////////
//顺序队列的初始化,建立,插入,查找,删除。//
//Author:Wang Yong                              //    
//Date:    2010.8.19                              //
//////////////////////////////////////////////


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

#define MAX 100
typedef int ElemType;

/////////////////////////////////////////////

//定义队列类型
 
typedef struct QNode
{
    ElemType data[MAX];
    int front,rear; 
}SeqQueue; 

/////////////////////////////////////////////

//顺序队列的初始化

SeqQueue SeqQueueInit()
{
    SeqQueue Q;                //队头和队尾相等即为空队列 
    Q.front = Q.rear = 0;
    return Q;
}

/////////////////////////////////////////////

//顺序队列的入队

void SeqQueueEnter(SeqQueue &Q,ElemType x)
{
    if( (Q.rear+1) % MAX == Q.front )//入队必须判断队列是否满了 
        printf("Queue full\n"); 
    Q.rear = (Q.rear+1) % MAX; 
    Q.data[Q.rear] = x;
 
}

///////////////////////////////////////////

//顺序队列的出队列

ElemType SeqQueueOut(SeqQueue &Q)
{
    if(Q.rear == Q.front)            //出队列时候必须判断队列是否为空 
        printf("Queue empty\n");
    ElemType x;    
    Q.front = (Q.front+1) % MAX;
    x = Q.data[Q.front];
    
    return x;
} 

//////////////////////////////////////////

int main()
{
    SeqQueue queue;
    queue = SeqQueueInit();
    ElemType x;
    printf("请输入入队列的元素:");
    while(scanf("%d",&x) != EOF)
    {
        SeqQueueEnter(queue,x);
    }
    while(queue.front != queue.rear)
    {
        printf("%d ",SeqQueueOut(queue)); 
    } 
    return 0;
} 

 

 

 

 

 

 

 

 

 

 

 

---

posted @ 2017-05-22 15:49  瘋耔  阅读(865)  评论(0编辑  收藏  举报
跳至侧栏