面試題21 包含min函式的棧

2021-06-25 15:03:46 字數 1705 閱讀 8381

//普通建構函式,構造乙個大小為maxsize的棧

cstack::cstack(int

maxsize)  

//拷貝建構函式

cstack::cstack(const

cstack &stack)  

//賦值函式

cstack & cstack::operator=(const

cstack &stack)  

if(stack.m_top != 0)

//stack為空

}  return

*this

;  }  

//向棧中壓入乙個元素nelement

void

cstack::push(

intnpushelement)  

else

if(m_top == 0)

//棧空

else

else

m_pstackarr[m_top++].m_ndata= npushelement;           

cout <

<

}  }  

//從棧中彈出乙個元素,並返回

void

cstack::pop()  

else

}  //o(1)的時間返回最小元素值

intcstack::min()  

else

}  cstack::~cstack(void

)    

測試**:

[cpp]view plain

copy

// 棧和佇列的靈活應用一:包含min,max函式的棧.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include 

#include "cstack.h"

using

namespace

std;  

int_tmain(

intargc, _tchar* argv)    

面試題30 包含min函式的棧

定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的min函式。在該棧中,呼叫min push及pop的時間複雜度都是o 1 思路 利用乙個輔助棧來存放最小值 棧 3,4,2,1 輔助棧 3,3,2,1 每入棧一次,就與輔助棧頂比較大小,如果小就入棧,如果大就入棧當前的輔助棧頂 當出棧時,輔...

面試題30 包含min函式的棧

一 題目 定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的min函式。在該棧中,呼叫min push及pop的時間複雜度都是o 1 二 關鍵 1.新增輔助棧,每次新增乙個元素,就往輔助棧中新增當前最小的那個元素。三 解釋 四 pragma once include include tem...

面試題30 包含min函式的棧

定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min push 及 pop 的時間複雜度都是 o 1 示例 minstack minstack new minstack minstack.push 2 minstack.push 0 minstack.pu...