資料結構練習(02)設計包含min函式的棧

2022-09-16 00:33:14 字數 840 閱讀 1042

基本上是把**抄了一遍,中間也查閱和理解了不少東西。

這裡的思想和程式設計之美上面的稍有不同,程式設計之美上面給出的解法是涉及乙個最小值的鏈,而這次的思路是涉及乙個對應的棧,如果push的不是最小值,則把以前的座標壓棧。

#include #include 

template

class

cstackwithmin

virtual ~cstackwithmin(void

) {}

t& top(void

);

const t& top(void) const

;

void push(const t&value);

void pop(void

);

const t& min(void) const

;private

: deque

m_data;

deque

m_minindex;

};template

t& cstackwithmin::top()

template

const t& cstackwithmin::top() const

template

void cstackwithmin::push(const t&value)

}template

void cstackwithmin::pop()

template

const t& cstackwithmin::min() const

感嘆自己的c++水平不足,以後還得不斷習練才行。

02設計包含min函式的棧

題目 定義棧的資料結構,要求新增乙個min 函式,能夠得到棧的最小元素。要求函式min push 以及pop 的時間複雜度都是o 1 思路 元素結構裡包含乙個min域,表示當前元素壓棧後,當前棧內的最小元素的值。include using namespace std define stack siz...

100題 02 設計包含min函式的棧

題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 以下是 pragma once template typename t class stack template typename t class stack node t...

資料結構 資料結構與演算法02

1 演算法設計的原則 設計演算法時,通常應考慮達到以下目標 1,正確性 2,可讀性 3,健壯性 4,高效率與低儲存量需求 1,正確性 規格說明 四個層次 a,程式中不含語法錯誤 b,程式對於幾組輸入資料能夠得出滿足要求的結果 c,程式對精心選擇的 典型 苛刻切帶有刁難性的幾組輸入資料能夠得出滿足要求...