您的位置:首页 > 编程语言 > C语言/C++

用数组实现队列(C语言版)

2015-08-02 21:59 411 查看
#include "stdafx.h"

#include <iostream>

#define arrsize 10

typedef struct{

int rear;

int head;

int arr[arrsize];

}queue;

queue* Init_Queue()

{

queue * a = (queue*)malloc(sizeof(queue));

if(a==NULL)

{

printf("malloc failed!\n");

exit(-1);

}

a->head = a->rear = 0;

int i;

for(i = 0;i<arrsize;i++)

{

a->arr[i] = 0;

}

return a;

}

int Queue_Empty(queue* p)

{

return (p->head==p->rear);

}

int Queue_Full(queue* p)

{

return ((p->rear+1)%arrsize==p->head);

}

void Queue_In(queue* p , int data)

{

if(Queue_Full(p))

{

printf("queue is full!\n");

return;

}

p->arr[p->rear] = data;

p->rear=(p->rear+1)%arrsize;

}

int Queue_Out(queue* p)

{

if(Queue_Empty(p))

{

printf("queue is empty!\n");

return 0;

}

int temp;

temp = p->arr[p->head];

p->head=p->head+1%arrsize;

return temp;

}

int _tmain(int argc, _TCHAR* argv[])

{

queue* a = Init_Queue();

Queue_In(a,i);

//

//

//

//

//

//

//

//

//

//

getchar();

}

这篇博客是写给自己的 所以没备注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: