1.栈顺序存储
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int main()
{
int stk[N],top=-1; // 指向最后一个元素
//插入
stk[++ top]=1;
stk[++ top]=2;
//弹出
--top;
//返回栈顶
stk[top];
}
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int main()
{
int stk[N],top=0; // 指向最后一个元素的下一个元素
//insert
stk[top++]=1;//stk[top]=1,top++;
stk[top++]=2;
//delete
--top;
//返回栈顶元素
stk[top-1];
}
2.队列顺序
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int main()
{
int q[N],front=0,rear=0;//front指向第一个元素,rear指向最后一个元素的下一个
//队列为空
front=rear;
//队列满?
front== (rear+1) % N;
//插入
q[rear++]=1;
rear%=N;
//弹出
front=(front+1) % N;
//返回队头
q[front];
}
#include<bits/stdc++.h>
using namespace std;
const int N=110;
int main()
{
int q[N],front=0,rear=-1;//front指向第一个元素,rear指向最后一个元素
//队列为空
front==(rear+1) % N;
//队列满?
front== (rear+2) % N;
//插入
q[++rear]=1;
rear%=N;
//弹出
front=(front+1) % N;
//返回队头
q[front];
}