数据结构环形队列学习(c语言)

本文介绍了如何使用C语言实现环形队列,详细阐述了环形队列的效果模型,包括队列满、删除元素、添加元素以及删除元素后的状态,并提供了相应的代码示例。
摘要由CSDN通过智能技术生成

数据结构环形队列学习(c语言)


  • 实现效果
    在这里插入图片描述

  • 效果模型描述

代码设置队列长度为5,数组实际大小为6(队列长度加1)
黄色方格是队列头,灰色是未被使用内存,蓝色是队列元素

Example1: 当队列添加满元素时(此时队列元素为5)
在这里插入图片描述

Example2: 删除Example1中队列3个元素(此时队列元素为2)

在这里插入图片描述

Example3: 在Example2队列基础上增加3个元素(此时队列长度为5)
在这里插入图片描述

Example4: 在Example3队列基础上删除3个元素(此时队列长度为2)

在这里插入图片描述


  • 代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

//Queue struct
typedef struct
{
   
    long unsigned head;
    long unsigned tail;
    size_t arr_len;
    int *queue;
} Queue;

//Create an int array as Queue.Initial.Parameter QueueLen is length of Queue
void NewCommonQueue(Queue *q, size_t QueueLen);
//Add a element for Queue.
void addElement(Queue *q, int elem);
//Delete a element of Queue.
int popElement(Queue *q);
//Show Queue.
void showQueue(Queue *q);
//Judge if Queue is empty.
int isEmpty(Queue *q);
//Judge if Queue is full.
int isFull(Queue *q);
//Get the element quality of Queue.
size_t getQueLen(Queue *q);
//Delete all element of Queue.
void clearQueue(Queue *q);




int main(void)
{
   
    Queue q;
    
    //Example1
    NewCommonQueue(&q, 5);
    addElement(&q, 1);
    addElement(&q, 2);
    addElement(&q, 3);
    addElement(&q, 4);
    addElement(&q, 5
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值