(数据结构)队列的顺序存储结构

本文详细介绍了如何在C语言中使用自定义结构体`squeue`实现循环队列,包括初始化、插入、删除和查看队列元素的操作。
摘要由CSDN通过智能技术生成

#include<stdio.h>
# define maxsize 10
typedef struct {
    int data[maxsize] ;
    int front ,rear;
}squeue;

void Initqueue(squeue &s){                    //初始化队列 
    s.front=s.rear=0;

}
bool insert(squeue &s,int x){                        //插入元素 ,入队 
    if((s.rear+1)%maxsize==s.front)
    {
        printf("队列已满,插入失败\n");
        return false; 
    }
    s.data[s.rear]=x;
    s.rear=(s.rear+1)%maxsize;
    printf("插入成功\n");
    
}
void looksqueue(squeue &s){                        //查看队列元素 
    if(s.rear==s.front)
    {
        printf("队列为空\n"); 
    }
    int j=0;
    for(int i=s.front;i!=s.rear;i=(i+1)%maxsize)
    {
        j++;
    printf("第%d个元素为%d\n",j,s.data[i]);
    }
}
void empty (squeue &s){                    //判断队列是否为空 
    if(s.front==s.rear)
    {
        printf("队列为空\n");
    }
}
bool Delete (squeue &s,int x){                  //删除元素,出队 
    if(s.front==s.rear)
    {
        printf("队列为空,出队失败\n");
        return false;
    }
    x=s.data[s.front];
    printf("出队成功,元素为%d\n",x);
    s.front=(s.front+1)%maxsize;    
    return true;
}
int main (){
    squeue  s;
    Initqueue (s);
    empty(s) ;
    insert(s,1);
        insert(s,2);
            insert(s,3);
                insert(s,4);
                    insert(s,5);
                        insert(s,6);
                            insert(s,7);
                                insert(s,8);
                                    insert(s,9);
                                        insert(s,10);
                        
    looksqueue(s);
    int x;
    Delete(s,x); 
        Delete(s,x); 
            Delete(s,x); 
    looksqueue(s);
    insert(s,55);
        looksqueue(s);


    return 0;
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值