#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXNUM 5 // 停车场车位数
#define PRICE 2.0 // 停车场收费标准
// 定义车
typedef struct {
char num[12]; // 车牌号,最长10位
struct tm intime; // 进入时间
struct tm outtime; // 离开时间
int expense; // 费用
int length; // 停车时长
int position; // 停车位
}CAR;
// 定义栈
typedef struct {
CAR car[MAXNUM];
int top;
}Stack;
// 定义链队列的结点
typedef struct carnode{
CAR data;
struct carnode *next;
}CarNode;
// 定义队列
typedef struct {
CarNode *head;
CarNode *rear;
}CarChainQueue;
// 初始化栈
void StackInit(Stack *s) {
s->top = -1;
}
int StackIsEmpty(Stack *s) {
if (s->top == -1) {
return 1;
}
else
{
return 0;
}
}
int StackIsFull(Stack *s) {
if (s->top == MAXNUM - 1) {
return 1;
}
else
{
return 0;
}
}
// 入栈
void StackPush(Stack *s, CAR car) {
if (!StackIsFull(s)) {
s->top++;
s->car[s->top] = car;
}
}
// 出栈
CAR StackPop(Stack *s) {
CAR car;
if (!StackIsEmpty(s)) {
car = s->car[s->top];
s->top--;
return car;
}
}
// 获取栈顶元素
CAR StackGetTop(Stack *s) {
CAR car;
if (!StackIsEmpty(s)) {
car = s->car[s->top];
return car;
}
}
// 队列初始化
void QueueInit(CarChainQueue *q) {
if (!(q->head = (CarNode *)malloc(sizeof(CarNode)))) {
printf("队列初始化失败!\n");
exit(0);
}
// 头尾指针指向相同,表示队列为空
q->rear = q->head;
q->head->next = NU
数据结构实验——C语言实现停车场管理系统模拟,锻炼栈、队列的使用
最新推荐文章于 2023-06-12 01:03:32 发布