队列的定义和实现(C++)
#include <iostream>
using namespace std;
#define SIZE 10
struct Queue
{
int *Front;
int *Rear;
int size;
};
void Init(Queue &q){
q.Front=new int [SIZE];
q.Rear=q.Front;
q.size=SIZE;
};
//开始对队列进行操作
//入队操作
int Ins(Queue &q,int e) {
*q.Rear=e;
cout<<"队列内部的赋值"<<*q.Rear<<endl;
cout<<"队列的Front:"<<q.Front<<endl;
q.Rear++;
cout<<"队列的Rear:"<<q.Rear<<endl;
}
//出队操作
int Rem(Queue &q,int &e){
cout<<"出队操作获取队列首位:"<<*q.Front<<endl;
e=*q.Front;
// delete(*q.Front);
q.Front++;
cout<<"出栈的Front变化:"<<q.Front<<endl;
}
//
int IsEmpty(Queue q)
{
if(q.Front==q.Rear)
return 1;
else
return 0;
}
int main(){
Queue queue;
Init(queue);
cout<<"请输入一组数,以非数字结束:"<<endl;
int e;
while(cin>>e){
Ins(queue,e);
}
while(!IsEmpty(queue))
{
Rem(queue,e);
cout<<"出栈的值::"<<e<<endl;
}
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------Results:
输入一串数字,(以非数字结束):
1 2 3 4
1
没赋值的栈顶:0xd518d0
赋值的栈顶:1
2
没赋值的栈顶:0xd518d4
赋值的栈顶:2
3
没赋值的栈顶:0xd518d8
赋值的栈顶:3
4
没赋值的栈顶:0xd518dc
赋值的栈顶:4
p
出栈的值:0xd518dc
出栈e的值:4
0 出栈的值:0xd518d8
出栈e的值:3
0 出栈的值:0xd518d4
出栈e的值:2
0 出栈的值:0xd518d0
出栈e的值:1
0