轉的《雙端佇列的實現》

2021-09-08 15:32:56 字數 1867 閱讀 5129

暫時先記下,慢慢研究!

使用陣列實現雙端佇列

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...