程式設計1 設計乙個有getMin功能的棧

2022-08-01 05:30:15 字數 1291 閱讀 9034

<?php 

header("content-type:text/html;charset=utf-8");

/**設計乙個有getmin功能的棧 p1 */

class

mystack

public

function push($newdata

)

elseif ($newdata

<= $this->stackmin->top())

$this->stackdata->push($newdata

); }

public

function

pop()

if($this->stackdata->top() == $this->stackmin->top())

return

$this->stackdata->pop();

}public

function

getmin()

return

$this->stackmin->top();

}}echo "向棧中一次壓入7,3,1,4,0:";

echo "

";$mystack = new

mystack();

$mystack->push(7);

$mystack->push(3);

$mystack->push(1);

$mystack->push(4);

$mystack->push(0);

print_r($mystack

);echo "

";echo "

";echo "彈出棧頂元素0,此時的最小值棧也應該有變化:";

echo "

";$mystack->pop();

print_r($mystack

);echo "

";echo "

";echo "彈出棧頂元素4,此時的最小值棧也應該無變化:";

echo "

";$mystack->pop();

print_r($mystack

);echo "

";echo "

";echo "獲取此時棧中最小值:";

echo "

";$min = $mystack->getmin();

echo

$min;

輸出結果:

設計乙個有GetMin功能的棧

兩種資料壓入規則,也就是兩種實現的方法,利用兩個棧,乙個stackdata棧用來壓入所有的資料,所有資料都會壓入此棧,乙個satckmin用來壓入最小元素 對應的就是stackdata中的最小元素 第一種方法 壓棧規則 1 當將資料壓入棧stackdata時,判斷stackmin棧是否為空,為空則將...

設計乙個有getMin功能的棧

使用c 完成 程式設計師 面試指南 it名企演算法與資料結構題目 實現乙個特殊的棧,在實現棧的基本功能基礎上,再實現返回棧中最小元素的操作 使用兩個棧,乙個棧用來儲存當前棧中的元素,起功能和乙個正常的棧沒有區別,這個棧記為stackdata 另乙個棧用於儲存每一步的最小值,這個棧記為stackmin...

設計乙個有getmin功能的棧

程式設計師 面試指南 it名企演算法與資料結構題目最優解 第一問 有這樣的乙個問題 設計乙個棧,實現棧的基本功能的基礎上,在實現返回棧中的最小元素操作。這個問題看似不難,只要在棧push每乙個元素的時候將這個元素和乙個最小數min進行大小比較,小於min就把這個元素的值賦給min,如此一來就可以得出...