首页 > 编程知识 正文

数据结构链式队列的基本操作,简要叙述循环队列的数据结构

时间:2023-05-05 22:57:02 阅读:208180 作者:3109

time_limit

3000MS

memory_limit

10000KB

description

假设将循环队列定义为:以域变量rear和length分别指示循环队列中队尾元素的位置和内含元素的个数。编写相应的入队列和出队列的程序,并判断循环队列是否队满(在出队列的算法中要返回队头元素)。

input

假设队列数组为Queue[MAXSIZE],第一行输入队列大小N,第二行开始输入若干入队元素,队满时,停止入队。第三行输入出队元素。

output

输出入队出队操作后的循环队列,并返回出队元素的队头元素。

sample_input

5

3 4 6 2 7

4

sample_output

6 2 7

6

#include <stdio.h>#include <stdlib.h>#include <string.h>#include<iostream>#define Initsize 500using namespace std;typedef int Elemtype;typedef struct {Elemtype *base;int Front;int rear;int length;}Quene, *PQuene;PQuene Init_quene(){PQuene p;p = (PQuene)malloc(sizeof(Quene));p->base = (Elemtype *)malloc(sizeof(Elemtype)*Initsize);if (p == NULL) { printf("Error Init"); return p; }p->length = p->Front = 0;p->rear = 0;return p;}void enQuene(PQuene p, Elemtype x,int Size){if ((p->rear ) % Size == p->Front&&p->length!=0) { printf("Error enQuene"); return; } //if length==Sizeif(p->rear==-1)p->rear=0;p->base[p->rear] = x;p->rear = (p->rear + 1) % Size;p->length++;}Elemtype deQuene(PQuene p,int Size){Elemtype x;x = p->base[p->Front];p->Front = (p->Front + 1) % Size;p->length--;return x;}int isfull(PQuene p,int Size){return (p->length == Size);}int isnull(PQuene p){ return (p->length==0);}int show(PQuene p,int Size){int i;if(isnull(p))return -1; //队列空退出i = p->Front; //先输出一个,免得队列满的时候,下面判断出错printf("%d ", p->base[i]);i=(i+1)%Size;while (i != (p->rear)%Size) {printf("%d ", p->base[i]);i = (i + 1) % Size;}printf("n");return 0;}int showtop(PQuene p){if(isnull(p))return -1;printf("%dn", p->base[p->Front]);return 0;}int main(){int i = 0, out, flag = 0,Size;int data = 0;char s[100],c;PQuene pquene;scanf("%d", &Size);pquene = Init_quene();getchar();gets(s);while (s[i] != '') { //将字符串中的内容存入队列if (s[i] == ' '&&flag == 1) {enQuene(pquene, data,Size);data = 0;i++;flag = 0;continue;}flag = 1;c = s[i++];data = data * 10 + (c - 48);}enQuene(pquene, data,Size); char zf[50]; gets(zf);scanf("%d", &out);while (deQuene(pquene,Size) != out);show(pquene,Size);showtop(pquene);return 0;}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。