電梯管理系統之資料結構的實現

2021-09-08 21:09:51 字數 975 閱讀 2316

分析題目可知需要最起碼需要對電梯以及乘客建模,電梯只有5層,而在5層電梯中,都有可能存在向下或者向上的乘客在等待,因此需要有等待佇列,每一層都有倆個等待佇列,乙個向上乙個向下。此外,為了滿足對電梯中更加逼逼真的建模,即模擬乘客出電梯的順序是先進後出(一般認為i先進電梯的要站靠內一點,所以比較晚出去)需要採用棧這個資料結構。每一層都有乙個從乘客棧。

話不多說,直接貼**

乘客的結構體定義:

//乘客相關的結構體定義

typedef struct clientnode *client;

等待佇列的結構體定義

typedef client elemtype;			

//乘客佇列

typedef struct clientqueuenode * clientqueueptr;

//乘客的等待佇列

typedef struct waitqueuenode waitqueue;

typedef client elemtype;

//乘客棧

typedef struct clientstacknode clientstack;

電梯的結構體定義:

//狀態的定義

enum elevatormove ; //電梯的8種動作

enum elevatorstate; //電梯的狀態

//電梯相關的結構體定義

typedef struct elevatornode *elevator;

其中callcar表示電梯要前往的目標樓層,一般在某層乘客按下電梯後,如果電梯要響應,就會把該層寫進自己的目標樓層中,或者是有乘客要進入電梯,那麼乘客的目標樓層就是該電梯的目標樓層。

clientid陣列記錄當前電梯的乘客編號,用了輸出顯示用,因為我設定乙個電梯最多智慧型容納8個人,所以就設定8位就行。

資料結構之棧的實現

定義 棧是限制插入和刪除只能在乙個位置的上進行的表 叫做後進先出表 該位置是表的末端,叫做棧頂。對棧的基本操作是push 入棧 和pop 出棧 前者是插入元素到棧頂,後者是將棧頂元素刪除 棧的應用 1.平衡符號 編譯器檢查程式的語法錯誤,看看一些符號是否匹配如 是匹配的,而 是不匹配的 2.計算字尾...

資料結構之棧實現

ps 棧用類實現比較好,可以同時管理多種資料結構。不過對於剛剛接觸的我來說,就看著數,按著書上的流程走吧。我會盡力把棧的特點講解清楚,以後有了更深入的了解,我會再來補充的。逆波蘭表示法 是一種將運算子寫在運算元後面的描述程式 算式 的方法。舉個例子,我們平常用中綴表示法描述的算式 1 2 5 4 改...

資料結構之String實現

說到底,string類實際上就是對字串指標進行一系列的操作 兩個重點 1.介面記得寫哪一些 2.c函式的使用 strcpy newstring.m data,m data strcat newstring.m data,other.m data class mystring define crt s...