C++的栈问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:10:08
停车场问题,由于是栈,先进去的车需要后进去的车暂时开出来才能离开,请问要怎么创建个临时栈,让后面的车先放到临时栈里,等要离开的车离开后再从新按顺序进来,也就是Depart那个函数,麻烦会写的朋友帮帮忙

class Paking //停车厂的车位“栈”
{
public:
Paking();
~Paking(){};
void Arrive(string x); //x为车牌号(此函数相当于“栈”的push压栈函数)
void Depart(string x); //x为车牌号(此函数相当于“栈”的pop出栈函数)
int length();
private:
int top; //栈顶指针
string car[Maxsize]; //存放停车场内车位中汽车的车牌号
int leng; //停车场当前的车辆数
};
Paking::Paking() //构造函数:初始化“栈”顶指针,和“栈”的长度
{
top=-1;
leng=0;
}
void Paking::Arrive(string x) //到达函数:车牌号为x进入停车场,同时车辆数+1
{
top++;
car[top]=x;
leng++;

}

看看我编的这个吧,其实临时栈是非常不必要的
#include"iostream"
#include"string"
#define MAX_STOP 5
#define MAX_PAVEe 100
using namespace std;

typedef struct{
string str[MAX_STOP];//各汽车信息的存储空间
int top;//用来表示栈顶指针的静态指针
}STOPPING;

typedef struct{
string str[MAX_PAVEe];
int front;
int rear;
}PAVEMENT;

typedef struct{
string str[MAX_STOP];
int top;
}BUFFER;

STOPPING *init_stopping(){//初始化
STOPPING *p;
p=new STOPPING;
p->top=-1;
return p;
}
BUFFER *init_buffer(){//初始化
BUFFER *p;
p=new BUFFER;
p->top=-1;
return p;
}
PAVEMENT *init_pavement(){//初始化
PAVEMENT *p;
p=new PAVEMENT;

p->front=0;
p->rear=0;
return p;
}
void car_come(STOPPING *&a,BUFFER *&b,PAVEMENT *&c){//车来
string s;
cout<<"请输入来的汽车牌号:"<<endl;
cin>>s;
cout<