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

2021-06-22 08:51:18 字數 966 閱讀 7080

思想就是入隊操作時,對最大值進行記錄。一種方法直接建立佇列,二種方法是利用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.求各元素為正整數的乙個陣...