思想就是入隊操作時,對最大值進行記錄。一種方法直接建立佇列,二種方法是利用2個棧實現佇列功能(詳見前面的文章)。此處給出第一種方法**:
// maxqueue.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#includetypedef int type;
using namespace std;
//鏈棧結點
typedef struct stack
stack,*pstack;
//鏈隊佇列結點
typedef struct queue
queue,*pqueue;
//隊typedef struct lqueue
lqueue,*plqueue;
//佇列初始化
void initqueue(plqueue q)
//進隊
void enterqueue(plqueue q,type data)
else
if(data>q->max)
q->max=data;
}//出隊
程式設計之美 3 7 佇列中取最大值操作問題
1.簡述 假設有這樣乙個擁有3個操作的佇列 1.enqueue v 將v加入佇列中 2.dequeue 使佇列中的對首元素刪除並返回此元素 3.maxelement 返回佇列中的最大元素 請設計乙個資料結構和演算法,讓maxelement操作的時間複雜度盡可能的低。2.思路 起初沒仔細看,還以為與此...
佇列中取最大值操作問題
1 利用棧中o 1 的時間複雜度取最大值的思路,使用兩個棧構建乙個佇列 2 然後取出兩個棧中的較大者即為佇列的最大值。include include include using namespace std class satckmax else void pop datastack.pop maxs...
最大值與最小值 程式設計之美2 10
1.求各元素為正整數的乙個陣列序列中的最小值 int min const unsigned int array,int length unsigned int minvalue array 0 for int i 1 i length i return minvalue 2.求各元素為正整數的乙個陣...