暫時先記下,慢慢研究!
**
使用陣列實現雙端佇列deque.h
#define
deque_h_included
struct
queuerecord;
typedef
struct
queuerecord
*queue;
intisempty(queue q);
intisfull(queue q);
queue createqueue(
intmaxelements);
void
disposequeue(queue q);
void
makeempty(queue q);
elementtype front(queue q);
//取隊頭元素
void
push(elementtype x, queue q);
//在隊頭執行入隊操作
void
pop(queue q);
//在隊頭執行出隊操作
elementtype frontandpop(queue q);
//出隊並取隊頭元素
elementtype rear(queue q);
//取隊尾元素
void
inject(elementtype x, queue q);
//在對尾執行入隊操作
void
eject(queue q);
//在隊尾執行出隊操作
elementtype rearandeject(queue q);
//出隊並取隊尾元素
#endif
//deque_h_included
deque.c
#include
"deque.h
"#include
"../lib/fatal.h
"#define
minqueuesize 5
struct
queuerecord
;int
isempty(queue q)
intisfull(queue q)
queue createqueue(
intmaxelements)
void
makeempty(queue q)
void
disposequeue(queue q)
}static
intsucc(
intvalue, queue q)
static
intprev(
intvalue, queue q)
/*取隊頭元素
*/elementtype front(queue q)
/*在隊頭執行入隊操作
*/void
push(elementtype x, queue q)}/*
在隊頭執行出隊操作
*/void
pop(queue q)}/*
出隊並取隊頭元素
*/elementtype frontandpop(queue q)
returnx;}
/*取隊尾元素
*/elementtype rear(queue q)
/*在隊尾執行入隊操作
*/void
inject(elementtype x, queue q)}/*
在隊尾執行出隊操作
*/void
eject(queue q)}/*
出隊並取隊尾元素
*/elementtype rearandeject(queue q)
returnx;}
轉的《雙端佇列的實現》
暫時先記下,慢慢研究!使用陣列實現雙端佇列 deque.h define deque h included struct queuerecord typedef struct queuerecord queue intisempty queue q intisfull queue q queue c...
棧 佇列 雙端佇列的實現
1.棧 class stack object 棧 def init self self.list def push self,item 新增新元素item到棧頂 def pop self 彈出棧頂元素 self.list.pop def peek self 返回棧頂元素 if self.list r...
實現雙端佇列
1.雙端佇列是乙個限定插入和刪除操作的資料結構,具有佇列和棧的性質。2.雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。3.雙端佇列是指允許兩端都可以進行入隊和出隊操作的佇列,其元素的邏輯結構仍是線性結構。將佇列的兩端分別稱為前端和後端,兩端都可以入隊和出隊。利用python的l...