棧與佇列的實現

2021-08-22 04:46:34 字數 1497 閱讀 1856

利用順序表實現棧

#include#include #include #include typedef struct position 	position;

typedef int sdatatype;

#define max_size (100)

typedef struct stack stack;

//初始化

void stackinit(stack *ps)

//入棧

void stackpush(stack *ps, sdatatype data)

//出棧

void stackpop(stack *ps)

//返回棧頂元素

sdatatype stacktop(stack *ps)

// 判斷為空, 1 空,0 非空

int stackisempty(stack *ps)

//返回資料(棧元素)個數

int stacksize(stack *ps)

//棧拷貝

利用單鏈表實現佇列

#include#include #include typedef int	qdatatype;

typedef struct qnode qnode;

typedef struct queue queue;

//初始化

void queueinit(queue *pq)

//入隊

void queuepush(queue *pq, qdatatype data)

// 通常情況,有元素佇列

pq->prear->pnext = pnewnode;

pq->prear = pnewnode;

}//出隊

void queuepop(queue *pq)

}//返回隊首元素

qdatatype queuefront(queue *pq)

//判斷佇列是否為空 ,1空 0非空

int queueisempty(queue *pq)

//返回隊內元素個數

佇列實現棧棧實現佇列

佇列是一種先進先出的資料結構,要想實現先進後出,需加乙個輔助佇列進行資料的來回倒 引用交換 從而實現棧結構。例如 5 4 3 2 1 用乙個輔助佇列裝 4 3 2 1,把5彈出,在把 4 3 2 1放回原佇列,如此反覆可變成5 4 3 2 1的棧結構。棧是一種先進後出的資料結構,要想實現先進先出,同...

佇列實現棧,棧實現佇列

兩個佇列實現棧 每次進入乙個佇列,取出得時候,把所有元素進入另乙個佇列,只留下乙個元素,以此實現棧的先進後出 filo package algorithmbymyself import j a.util.linkedlist import j a.util.queue 用兩個佇列實現乙個棧 publ...

棧與佇列的實現(python)

利用python內建的list來實現棧 class stack object 棧 def init self self.items def is empty self 判斷是否為空 return self.items def push self,item 加入元素 def pop self 彈出元素...