/* 佇列基本操作
initqueue(&q):初始化佇列,構造乙個空佇列q。
queueempty(q):判佇列空,若佇列q為空返回true,否則返回false。
enqueue(&q, x):入隊,若佇列q未滿,則將x加入使之成為新的隊尾。
dequeue(&q, &x):出隊,若佇列q非空,則刪除隊頭元素,並用x返回。
gethead(q, &x):讀隊頭元素,若佇列q非空則用x返回隊頭元素。
clearqueue(&q):銷毀佇列,並釋放佇列q占用的記憶體空間。
* */
#include
using
namespace std;
#define elemtype int
//鏈式佇列資料結構
typedef
struct linknode
*node;
typedef
struct queuequeue;
//初始化
void
initqueue
(queue &q)
//判空
bool
isempty
(queue q)
return
false;}
// 入隊
void
enqueue
(queue &q,elemtype x)
//出隊
bool
dequeue
(queue &q,elemtype &x)
linknode *p=q.front-
>next;
x=p-
>data;
q.front-
>next=p-
>next;
if(q.rear==p)
free
(p);
return
true;}
//遍歷
void
print
(queue q)
linknode* p=q.front-
>next;
while
(p!=q.rear)
cout<>data<}int
main()
佇列元素為:1 3 5
process finished with exit code 0
資料結構鏈式佇列
對佇列進行以下操作 1.入佇列 2.出佇列 3.取隊首元素 佇列先進先出,要想實現入佇列,從隊尾插入元素 要想實現出佇列,從隊首刪除元素。在這裡,我們定義頭尾指標,首先對空佇列插入元素,讓頭指標等於尾指標,如果非空,依然讓頭指標指向隊首,尾指標指向要插入的元素。刪除元素時,直接讓頭指標指向下乙個元素...
資料結構作業2 鏈式儲存結構及其操作
2 1 線性表採用鏈式儲存時,其位址 1分 部分位址必須是連續的 一定是不連續的 連續與否均可以 必須是連續的 2 2不帶表頭附加結點的單鏈表為空的判斷條件是頭指標head滿足條件 1分 head null head next head head nextnull headnull 2 3在單鏈表中...
資料結構之鏈式佇列
我們實現了順序佇列,包括優化,現在我們再來學習下鏈式佇列。注 這裡還是要包含前面我們實現的鏈式鍊錶的標頭檔案和實現檔案。第十個例子,鏈式佇列的實現 標頭檔案 ifndef linkqueue h define linkqueue h typedef void linkqueue linkqueue ...