队列(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;
}
上一篇: JAVA经典算法(三十五)
下一篇: 连续子数组的最大和----动态规划专题