欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

队列(Queue)

程序员文章站 2024-03-18 08:15:16
...

//队列是一种特殊的线性表
//①队列是线性表
//②特殊性:先进先出(FIFO)
//队首指针(front):指向队列的第一个元素
//队尾指针(rear):指向队列的最后一个元素
//front和rear之间即队列数据
//入队操作:是对队尾指针rear的操作(in)
//rear后移,元素入队-------rear指向队尾元素
//出队操作:(out)
//front后移,元素出队

//将s指向的栈中的元素逆置(设top指向栈顶元素)

#include<stdio.h>
#include<stdlib.h> 
#define n 5
void Create(int *a,int top,int *c)
{
	int i; 
	//入栈 
	int front=0;
	int rear=0;
	printf("Please input a[i]:");
	for(int i=0;i<n;i++){
			scanf("%d",a+i);
			while(top!=n-1){
			a[++top]=a[i];
		}
	}
		//出栈 入队 
	while(top!=-1){
			c[++rear]=a[top--];
		} 
		//出队 +入栈
	while(top!=n-1){
		a[++top]=c[++front];
	}
			//出栈 
	while(top!=-1){
		printf("%d",a[top--]);
	}
}
int main()
{
	int top;
	int *c;
	top=-1;//栈顶指针 
	int *a;
	a=(int *)malloc(n*sizeof(int));
	c=(int *)malloc((n+1)*sizeof(int));
	Create(a,top,c);
	free(a);
	free(c);
	return 0;
}