停車場管理(棧與佇列的應用)

2021-07-05 16:55:42 字數 2567 閱讀 7795

自動停車場由乙個可停放n 輛車的狹長通道構成,且只有乙個入口可供汽車進出。在停車場內,汽車按到達的先後次序,由北向南依次排列(假設入口在最南端)。若停車場內已停滿n 輛車,則後來的汽車需在入口外的臨時等候便道上等候,當有車要離開時,臨時等候便道上的第一輛車即可進入。當自動停車場內某輛車要離開時,必須先將在它之後

進入的車輛移出為其讓路,待該輛車離開後,其他車輛再按原次序移入自動停車場。每輛車離開自動停車場時,應按其停留時間的長短交費(在臨時等候便道上停留的時間不收費)。

#ifndef head_h_included

#define head_h_included

#include #include #include #include #include using namespace std;

#define maxstacksize 4

#define maxqueuesize 5

struct elem

;struct stack

;struct qnode

;struct queue

;void initstack(stack &s);

elem gettop(stack s);

void push(stack &s, elem e);

elem pop(stack &s);

void initqueue(queue &q);

void enqueue(queue &q, elem e);

elem dequeue(queue &q);

int calculate_expense(elem a, elem b);

void solve(stack s, stack s2, queue q);

#endif // head_h_included

#include "head.h"

int main()

#include "head.h"

void solve(stack s, stack s2, queue q)

else

else

printf("對不起,臨時停車場已滿\n");}}

else if(op == 'l') //車輛離開

else

}while(s2.stacksize != 0)

if(q.queuesize > 0)

}getchar();

}return;

}

//stack_operation.cpp

#include "head.h"

void initstack(stack &s)

elem gettop(stack s)

void push(stack &s, elem e)

elem pop(stack &s)

//queue_operation.cpp

#include "head.h"

void initqueue(queue &q)

void enqueue(queue &q, elem e)

elem dequeue(queue &q)

//calculate_expense.cpp

#include "head.h"

int calculate_expense(elem a, elem b)

測試資料:

input:

a 001 07:00

a 002 07:30

a 003 07:40

a 004 08:00

a 005 09:05

a 006 10:00

a 007 11:25

a 008 12:20

a 009 12:23

a 010 14:00

l 001 15:00

l 002 15:30

l 006 16:00

a 011 16:30

output:

輸入需要進行的操作(l:離開,a:到達),您的車牌號及時間(時:分):

您的汽車 001 停於自動停車場第 1 號位置

您的汽車 002 停於自動停車場第 2 號位置

您的汽車 003 停於自動停車場第 3 號位置

您的汽車 004 停於自動停車場第 4 號位置

您的汽車 005 停於臨時停車場第 1 號位置

您的汽車 006 停於臨時停車場第 2 號位置

您的汽車 007 停於臨時停車場第 3 號位置

您的汽車 008 停於臨時停車場第 4 號位置

您的汽車 009 停於臨時停車場第 5 號位置

對不起,臨時停車場已滿

001 應收取的費用為: 480

002 應收取的費用為: 480

006 應收取的費用為: 30

您的汽車 011 停於臨時停車場第 3 號位置

停車場管理(棧和佇列的應用)

設停車場是乙個可以停放n輛汽車的狹長通道,且只有乙個大門可供汽車進出。汽車在停車場內按車輛到達時間的先後順序,依次有北向南排列 大門在最南端,最先到達的第一車停放在車場的最北端 若車場內已停滿n輛車,那麼後來的車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入 當停車場內某輛車要...

停車場管理

include include include define n 5 typedef struct s 隊節點 ss typedef struct 指標節點 queue typedef struct 棧節點 stack stack init1 stack s void push stack s,ch...

停車場(順序棧,順序佇列)

include include define true 1 define false 0 define size 10 define price 2 停車場 typedef int parkdata typedef struct park park int initpark park p p top...