//標頭檔案和機構體
#include
#include
typedef
int elemtype;
//鍊錶節點
typedef
struct linkqueuenode
linkqueue;
//指向鍊錶的頭結點的節點
typedef
struct lqueue
lqueue;
//初始化佇列
lqueue *
init_linkqueue()
head -> next =
null
; q -> front = head;
q -> rear = head;
head -> data =0;
return q;
}
//入隊
void
enter_linkqueue
(lqueue *q,elemtype x)
p -> data = x;
p -> next =
null
; q -> front -> data ++
;//記錄節點的個數
q -> rear -> next = p;
q -> rear = p;
return
;}
//出隊
void
delete_linkqueue
(lqueue *q,elemtype *x)
*x = node -> data;
q -> front -> next = node -> next;
if(node == q -> rear)
free
(node)
; q -> front -> data --
;return
;}
//輸出
void
print
(lqueue *q)
}
下面的完整**
#include
#include
typedef
int elemtype;
typedef
struct linkqueuenode
linkqueue;
typedef
struct lqueue
lqueue;
//初始化佇列
lqueue *
init_linkqueue()
head -> next =
null
; q -> front = head;
q -> rear = head;
head -> data =0;
return q;
}//入佇列
void
enter_linkqueue
(lqueue *q,elemtype x)
p -> data = x;
p -> next =
null
; q -> front -> data ++
;//記錄節點的個數
q -> rear -> next = p;
q -> rear = p;
return;}
//出佇列
void
delete_linkqueue
(lqueue *q,elemtype *x)
*x = node -> data;
q -> front -> next = node -> next;
if(node == q -> rear)
free
(node)
; q -> front -> data --
;return;}
//輸出
void
print
(lqueue *q)
printf
("\n");
}int
main()
enter_linkqueue
(q,x);}
printf
("\n");
print
(q);
}
執行結果
用棧實現佇列的進隊出隊操作
假設有兩個棧stack1,stack2 用這兩個棧來實現佇列的push 和 pop 操作 思路 進隊 push 操作,直接使用stack1.push 將元素進棧即可 出隊 pop 操作,先判斷stack2是否為空。若不為空,則stack2直接出棧即可 若為空,則將stack1中的元素全部出棧,並依次...
迴圈佇列的初始化 入隊 出隊等基本操作
迴圈佇列的初始化 入隊 出隊等基本操作,實現 如下 include using namespace std define true 1 define false 0 迴圈佇列的型別定義 define maxsize 50 佇列的最大長度 typedef struct seqqueue 迴圈佇列初始化...
順序佇列初始化 入隊 出佇列 判斷隊空
include include include define maxsize 100 using namespace std 順序佇列的型別 struct sequeue 順序佇列的常用形式就是迴圈佇列,迴圈佇列的基本運算 void initqueue struct sequeue q 入佇列演算法...