資料結構課程設計 停車場管理系統(棧和佇列)

2021-10-11 23:48:14 字數 2461 閱讀 9092

設停車場(如下圖1所示)內只有乙個可停放幾量汽車的狹長通道,且只有乙個大門可供汽車進出。汽車在停車場內按車輛到達時的先後順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在車場的最北端),若車場內已經停滿幾量汽車,則後來的汽車只能在門外的便道上等候,一旦停車場內有車開走,則排在便道上的第一輛汽車即可開入;當停車場內某車輛要離開時,由於停車場是狹長的通道,在它之後開入車場的車輛必須先退出車場為它讓路,待該車輛開出大門外後,為它讓路的車輛再按原次序進入車場。在這裡假設汽車不能從便道上開走。試設計乙個停車場管理程式(這裡只是乙個假想的停車場管理,並不代表實際的停車場管理)。

汽車在停車場內進出是按照棧的運算方式來實現的,先到的先進停車場;停車場的汽車離開停車場時,汽車場內其它汽車為該輛汽車讓路,也是按棧的方式進行;汽車在便道上等候是按佇列的方式進行的。因此,將停車場設計成乙個棧,汽車讓路也需要另乙個棧來協助完成,汽車進出便道用佇列來實現。

即兩個棧,乙個停車棧,乙個讓車棧;乙個佇列,便道佇列。

*儲存結構如下:

#define  stacksize  10

typedef

struct sqstack

sqstacktp;

typedef

struct linked_queue

lqueuetp;

typedef

struct

queptrtp;

要求:

1)接受命令和車號,若是汽車要進停車場,先判斷停車場棧是否滿,若不滿,則汽車入棧,否則汽車進入便道佇列等候。

2)若是汽車要離開停車場,為給汽車讓路,將停車場棧上若干輛汽車入臨時棧,等這輛車出停車場後,臨時棧中的汽車出棧,在回到停車場棧,然後看便道佇列是否為空,若不空則說明有汽車等候,從隊頭取出汽車號,讓該車進入停車場棧。

3)重複1),2)直到為退出命令(車號為0或負數)。

**:

#include

#include

#define stacksize 3

using

namespace std;

typedef

struct sqstack

sqstacktp;

typedef

struct linked_queue

lqueuetp;

typedef

struct

queptrtp;

intstackin

(sqstacktp &s,

int x)

//x為車號

else

return1;

//棧滿返回0

}int

stackout

(sqstacktp &s)

}int

emptystack

(sqstacktp s)

void

queuein

(queptrtp &q,

int x)

intqueueout

(queptrtp &q)

p=q.front-

>next;

q.front-

>next=p-

>next;

if(q.rear==p) q.rear=q.front;

delete p;

}int

printfstack

(sqstacktp s)

while

(p.top!=0)

}int

printfqueue

(queptrtp q)

while

(p!=

null)}

intstopsystem()

//出車

else

if(a==0)

while

(s_ting.data[s_ting.top]

!=x)

//找到要出的車

stackout

(s_ting)

;//出的車出停車棧

while

(s_rang.top!=0)

//把原來到讓行棧的車全入停車棧

if(q_bian.front!=q_bian.rear)

}else

break;}

}//檢查情況

else

if(y==2)

printf

("要進行的操作:1.停車出車,2.檢查三個位置情況\n");

}}intmain()

輸出測試:

此處為了方便,將巨集定義的棧大小改為了3

資料結構 停車場管理

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

資料結構 停車場管理

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

資料結構 停車場管理

二 概要設計 三 詳細設計 四 除錯分析 五 使用者手冊 六 測試結果 停車場是乙個可停放n輛汽車的狹長通道,且只有乙個大門可供汽車進出。汽車在停車場內按車輛到達時間的先後順序,依次由北向南排列 大門在最南端,最先到達的第一輛車放在車場的最北端 若車場內已停滿n輛汽車,則後來的汽車只能在門外的便道上...