棧
棧是一種後進先出結構,可以根據改變棧狀態和檢測棧狀態的操作來定義棧,包括清空棧,判斷棧是否為空,將元素放入棧頂,彈出棧頂元素,獲取棧頂元素但不刪除該元素。適用於資料儲存後以相反的順序檢索的情況,乙個應用是在程式中匹配分隔符。
棧的鍊錶實現
template<
class
type
>
class
stack
bool isempty()
const
void
clear()
void
push
(const type& info)
type pop()
type&
top(
)private
: list m_list;
};
佇列
佇列是一種先進先出結構,佇列是乙個簡單的排隊序列,在佇列尾部新增元素,在佇列頭部刪除元素,是一種使用兩端的結構。佇列常用於模擬,如排隊論,用佇列建立模型。
佇列的鍊錶實現(雙向鍊錶)
template<
class
type
>
class
queue
bool isempty()
const
void
clear()
void
push
(const type& info)
type pop()
type&
top(
)private
: list m_list;
};
銀行排隊服務示例
int function
(int para)
int main()
;//每分鐘顧客數及所佔百分比,陣列下標為顧客數
//服務時間及所佔百分比,陣列下標為服務時間的十分之一
int services=
;//職員需要服務時間及員工數量資訊
int clerks=
, numofclerks=
sizeof
(clerks)
/sizeof
(int)
; int customers, t, i, x, numofminutes=
100;
double maxwait=
0.0, curwait=
0.0, thereisline=
0.0;
queue simulq;
cout.
precision(2
);for(t=
1;t<=numofminutes;t++
)else
}customers
=function
(arrivals)
;for
(i=0
;i)for
(i=0
;i!simulq.
isempty()
;)else}if
(!simulq.
isempty()
)}} cout<<
"\nfor"
<"clerks, there was a line"
<100<<
"% of the time;\n"
<<
"max wait time was"
<60.0
<<
"min."
return0;
}
資料結構 棧與佇列
題目 1.編寫函式,採用鏈式儲存實現棧的初始化 入棧 出棧操作 2.編寫函式,採用順序儲存實現棧的初始化 入棧 出棧操作 3.編寫函式,採用鏈式儲存實現佇列的初始化 入隊 出隊操作 4.編寫函式,採用順序儲存實現佇列的初始化 入隊 出隊操作 5.編寫乙個主函式,在主函式中設計乙個簡單的選單,分別除錯...
資料結構 棧與佇列
棧的原則是後進先出,即插入與刪除元素均在棧頂進行。獲取棧頂元素 s.top 佇列的原則是先進先出,即插入資料在隊尾進行,刪除資料在隊頭進行。獲取隊頭元素 q.front 思路 用兩個棧,乙個棧用來進隊,乙個棧用來出隊,當資料進入佇列的時候,我們將其壓入乙個棧,當資料出隊的時候,我們將儲存在棧內的資料...
資料結構 棧與佇列
1.順序棧 基本操作 typedef int elemtype 定義 順序棧 typedef struct sqstack 判空 bool stackempty sqstack s 進棧 bool push sqstack s elemtype x 出棧操作 bool pop sqstack s e...