队列(Queue)

//队列是一种特殊的线性表
//①队列是线性表
//②特殊性:先进先出(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;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值