c语言描述:数据结构【四.栈与队列】(顺序队列)

17 篇文章 0 订阅
11 篇文章 1 订阅

前言

这些代码均为自己在郝斌老师教学的基础下自己的理解与补充,以及一些详细的解释

结构体使用

#include<stdio.h>
typedef struct Queue
{ 
  int *pBase;
  int  front;
  int  rear;
}QUEUE;

初始化

void init (QUEUE *pQ)//初始化
{
  pQ->pBase=(int*)malloc(sizeof(int)*6);
  pQ->front=0;
  pQ->rear=0;
}

入队

en_queue(QUEUE*pQ,int val)
{
	if ( (pQ->rear + 1) % 6 == pQ->front  )//如果rear移动到下一个元素就是front指向的元素,则该队列已满
    return;
    else
    {
       pQ->pBase[pQ->rear]=val;
       pQ->rear=(pQ->rear+1)%6;//这样可以避免越界 ,进行循环利用
       return;
    }
}

出队

out_queue(QUEUE*pQ,int *pVal)
{
    if(pQ->front==pQ->rear)//如果front和rear指向同一个元素,则可以知道该队列已经空了
    {
       printf("队列是空的\n");
       return;
    }
    else
    {
        *pVal=pQ->pBase[pQ->front];
        pQ->front=(pQ->front+1)%6;//先进先出
       return;
    }

}

遍历

void traverse (QUEUE*pQ)
{
    int i =pQ->front;
    while(i!=pQ->rear)
    {
       printf("%d",pQ->pBase[i]);//打印出来
       i=(i+1)%6;//移动到下一个
    }
   printf("\n");

   return;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值