題目:某汽車輪渡口,過江渡船每次能載 10 輛車過江。過江車輛分別為客車類和 貨車類,上船有如下規定:同類車先到先上船,客車先於貨車上渡船,且每上 4 輛客 車,才允許上一輛貨車;若等待客車不足 4 輛則以貨車代替;若無貨車等待則允許客 車都上船。設計乙個演算法模擬渡口管理。
test.h
#include#include#include
#include
#define maxsize 50typedef
intelemtype;
typedef
struct
sequenqueue
sequenqueue;
sequenqueue *init_sequenqueue()
if (q !=null)
returnq;}
void print(sequenqueue *q)
}void printexit(sequenqueue *q)
system(
"pause");
}void
menu()
void entryqueue(sequenqueue *q)//
入隊 printf(
"輸入x並以0結束:");
scanf("%d
", &x);
while (x != 0
)
return;}
int exitqueue(sequenqueue *q)//
出隊 first = ((q->rear + maxsize) - q->len + 1) % maxsize; //
計算隊頭元素的下標
x = q->sequ[q->front]; //
獲得隊頭元素
q->len--; //
長度減一
q->front = (q->front + 1) % maxsize; //
移動頭指標
printf("
已將%d出隊\n
", x);
printf(
"尾部位置%d\n
", q->rear);
printf(
"頭部位置%d\n
", q->front);
returnx;}
int exit1(sequenqueue *q)
void entry1(sequenqueue *q, int
x) q->sequ[q->rear] = x; //
入隊 q->rear = (q->rear + 1) % maxsize; //
移動隊尾指標
q->len++;
return;}
void output(sequenqueue *b, sequenqueue *t, sequenqueue *f)
else
if (busnum < 4 && b->len == 0 && t->len != 0
)
else
if (busnum >= 4 && t->len != 0
)
else
if (busnum >= 4 && t->len == 0 && b->len != 0
)
else
}}
test.c
#include "test.h
"void
main()
system(
"cls");
menu();
i =_getch();
}}
資料結構實驗6
因為精度問題,請使用double存資料。要求建立棧類,採用陣列描述 計算數學表示式的值。輸入數學表示式,輸出表示式的計算結果。數學表示式由單個數字和運算子 構成,例如 2 3 4 5 6 4。假定表示式輸入格式合法。格式輸入 第一行乙個整數n 1 n 100 代表表示式的個數。接下來n行,每行乙個表...
資料結構實驗(6)
ps 僅資料結構實驗記錄 題目 某汽車輪渡口,過江渡船每次能載 10 輛車過江。過江車輛分別為客車類和貨車類,上船有如下規定 同類車先到先上船,客車先於貨車上渡船,且每上 4 輛客 車,才允許上一輛貨車 若等待客車不足 4 輛則以貨車代替 若無貨車等待則允許客 車都上船。設計乙個演算法模擬渡口管理。...
資料結構實驗6 樹
編寫演算法函式void levelorder tree t 實現樹的層次遍歷。include tree.h void levelorder tree t t為指向樹根結點的指標 int main 假設樹採用指標方式的孩子表示法表示,試編寫乙個非遞迴函式void preorder1 tree root...