队列的实现C语言

先用数组实现队列 ,注意变量的初始化。

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


typedef struct 
{
int capacity;
int size;
int front;
int rear;
int *Array;
}Queue;
Queue *CreatQueue(Queue *queue);
void Enqueue(Queue *queue,int capacity);





//主函数
int main()
{
Queue *queue;
queue=(Queue *)malloc(sizeof(queue));
if(queue==NULL)
printf("Out of space");
Enqueue(CreatQueue(queue),queue->capacity);
printf("%d",queue->Array[0]);
}

//创建一个队列
Queue *CreatQueue(Queue *queue)
{
//queue=(Queue *)malloc(sizeof(queue));
//if(queue==NULL)
//printf("Out of space");
queue->capacity=10;
queue->Array=(int *)malloc(queue->capacity*sizeof(int));
if(queue->Array==NULL)
printf("Out of space");
queue->size=0;
queue->front=0;
queue->rear=-1;
return queue;




}

//元素进队列
void Enqueue(Queue *queue,int capacity)
{
queue->rear++;   
queue->Array[queue->rear]=6;
queue->size++;
if(queue->rear==capacity)
queue->rear=0;
}

再采用链表犯法构建队列

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

//链表节点
typedef struct node
{
int val;
struct node *next;
}node;

//包含队列元素结构
typedef struct 
{
node *front;
node *rear;
int size;
}queue;

//创建一个空的队列
queue *Create_Queue()
{
queue *Queue;
Queue=(queue *)malloc(sizeof(queue));
if(Queue!=NULL)
{
Queue->front=NULL;
Queue->rear=NULL;
Queue->size=0;
}
return Queue;
}

//将元素写进队列
queue *EnQueue(queue *Queue,int element)
{
node *Pnode=(node *)malloc(sizeof(node));
if(Pnode!=NULL)
{
Pnode->val=element;
Pnode->next=NULL;
}
if(Queue->front==NULL)
{
Queue->front=Pnode;
}
else
{
Queue->rear->next=Pnode;
}
Queue->size++;
Queue->rear=Pnode;
return Queue;
}




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值