数据结构的定义
分析题目可知需要最起码需要对电梯以及乘客建模,电梯只有5层,而在5层电梯中,都有可能存在向下或者向上的乘客在等待,因此需要有等待队列,每一层都有俩个等待队列,一个向上一个向下。此外,为了满足对电梯中更加逼逼真的建模,即模拟乘客出电梯的顺序是先进后出(一般认为i先进电梯的要站靠内一点,所以比较晚出去)需要采用栈这个数据结构。每一层都有一个从乘客栈。
话不多说,直接贴代码
乘客的结构体定义:
//乘客相关的结构体定义
typedef struct ClientNode {
int ClientID; //乘客的ID
int InFloor; //进入的楼层
int OutFloor; //目标楼层
int GiveupTime; //放弃时间
}*Client;
等待队列的结构体定义
typedef Client ElemType;
//乘客队列
typedef struct ClientQueueNode {
Client data;
ClientQueueNode * next;
}* ClientQueuePtr;
//乘客的等待队列
typedef struct WaitQueueNode {
ClientQueuePtr front;
ClientQueuePtr rear;
int WaitClientNum;
}WaitQueue;
typedef Client ElemType;
//乘客栈
typedef struct ClientStackNode {
ElemType *base; //栈底指针
Elem