/***鏈隊的基本操作***/
#include
#include
using
namespace std;
#define ok 1
#define error 0
#define overflow -2
typedef
char qelemtype;
typedef
int status;
typedef
char selemtype;
//- - - - - 佇列的鏈式儲存結構- - - - -
typedef
struct qnode qnode,
*queueptr;
typedef
struct
linkqueue;
//演算法 -鏈隊的初始化
status initqueue
(linkqueue &q)
//演算法-鏈隊的入隊
status enqueue
(linkqueue &q, qelemtype e)
//演算法-鏈隊的出隊
status dequeue
(linkqueue &q, qelemtype &e)
//演算法3.19 取鏈隊的隊頭元素
selemtype gethead
(linkqueue q)
intmain()
else
cout <<
"初始化佇列失敗\n\n"
;break
;case2:
if(flag)
} cout << endl << endl;
}else
cout <<
"佇列未建立,請重新選擇\n\n"
; file.
close()
;}break
;case3:
//取鏈隊的隊頭元素
if(flag !=-1
&& flag !=0)
cout <<
"隊頭元素為:\n"
<<
gethead
(q)<< endl << endl;
else
cout <<
"佇列中無元素,請重新選擇\n"
<< endl;
break
;case4:
// 鏈隊的出隊
cout <<
"依次彈出的隊頭元素為:\n"
;while
(dequeue
(q, e)
) cout << endl << endl;
break;}
}return0;
}
執行結果: 鏈隊操作實現
李德坤 煙台大學計算機與控制工程學院 我自己對鏈隊的理解,鏈隊的front只要不是出隊操作始終指向第乙個進入的元素,而rear隨著元素入隊由指向第乙個進入的元素逐漸後移 指向下乙個元素 當然front隨著元素出隊而逐漸後移 和rear移動方向一樣 例如1 2 1 3 2 1 4 3 2 1 5 4 ...
順序棧 鏈棧 迴圈佇列 鏈隊基本操作的實現
一 實驗學時 2學時 二 實驗目的 三 實驗內容 順序棧的建立 取棧頂元素 入棧 出棧 佇列的建立 取隊中元素 入隊 出隊 迴圈佇列中入隊 出隊操作 四 主要儀器裝置及耗材 五 實驗步驟 分析問題 寫出演算法 編制程式 上機除錯 分析結果 六 程式清單 1.順序棧 include include d...
資料結構迴圈佇列與鏈隊的基本操作
一.定義 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。二.特點 佇列的特點是先進先出。例如排隊付款,先...