栈的定义
typedef struct{
int data[maxsize];
int top;
}sqstack;
栈初始化
void initstack(sqstack &s)//栈初始化
{
s.top=-1;
}
入栈
bool push(sqstack &s,int x)//入栈
{
if(s.top==maxsize-1)
{
return false;
}
s.top++;
s.data[s.top]=x;
return true;
}
出栈
bool pop(sqstack &s,int &x)
{
if(s.top==-1)
return false;
x=s.data[s.top];
s.top--;
return true;
}
获取栈顶元素
bool gettop(sqstack s,int &x)
{
if(s.top==-1)
return false;
x=s.data[s.top];
return true;
}
队列定义
typedef struct
{
int data1[maxsize];
int front,rear;
}sqqeue;
队列初始化
void initqueue(sqqeue &q)
{
q.front=q.rear=0;
}
入队
bool enqueue(sqqeue &q,int x)
{
if((q.rear+1)%maxsize==q.front)
return false;
q.data1[q.rear]=x;
q.rear=(q.rear+1)%maxsize;
return true;
}
出队
bool dequeue(sqqeue &q,int &x)
{
if(q.front==q.rear)
return false;
x=q.data1[q.front];
q.front=(q.front+1)%maxsize;
return true;
}