程式設計之美(三)佇列中取最大運算元的問題

2021-06-17 22:37:11 字數 1004 閱讀 2528

#include //#include //#include #includeusing namespace std;

#define maxn 100

class stack

//判斷當前堆疊是否為空

bool isempty()

//判斷當前堆疊是否滿

bool isfull()

//向堆疊中push元素,

void push(int x)

else

link2nextmaxitem[stacktop] = -1;}}

int pop()

}void printitems()

//返回佇列中最大值

int max()

void printqueue()

//在佇列末尾插入元素

void insertqueue(int x)

//刪除並返回隊首元素,

//如果stacka中是空,則先將stackb中的所有元素pop到stacka中,

//這樣stackb中先插入的元素就會pop到stacka中的頂部

int dequeue()

return stacka.pop();

}private:

stack stacka; //維護出佇列操作

stack stackb; //維護入佇列操作

};int main()

; for(int i = 0; i < sizeof(a)/sizeof(int); ++i)

queue.insertqueue(101);

cout<<"queue maxvalue = "<

//cout<<"queue maxvalue = "<

int deq = queue.dequeue();

cout<<"deq = "程式設計之美 3 7 佇列中取最大值操作問題

1.簡述 假設有這樣乙個擁有3個操作的佇列 1.enqueue v 將v加入佇列中 2.dequeue 使佇列中的對首元素刪除並返回此元素 3.maxelement 返回佇列中的最大元素 請設計乙個資料結構和演算法,讓maxelement操作的時間複雜度盡可能的低。2.思路 起初沒仔細看,還以為與此...

redis學習筆記三(佇列功能)

常用命令 blpop刪除,並獲得該列表中的第一元素,或阻塞,直到有乙個可用 brpop刪除,並獲得該列表中的最後乙個元素,或阻塞,直到有乙個可用 brpoplpush lindex獲取乙個元素,通過其索引列表 linsert在列表中的另乙個元素之前或之後插入乙個元素 llen獲得佇列 list 的長...

程式設計之美 佇列中取最大值操作問題

思想就是入隊操作時,對最大值進行記錄。一種方法直接建立佇列,二種方法是利用2個棧實現佇列功能 詳見前面的文章 此處給出第一種方法 maxqueue.cpp 定義控制台應用程式的入口點。include stdafx.h includetypedef int type using namespace s...