[ThinkingDog]是一個積極向上、樂觀、熱心的人。
沉思的狗の博客
[ThinkingDog]歡迎您的光臨,請多多指教!
微軟等數據結構+算法面試100題_全部出爐_02
/**/
/*
*******************************************************************
purpose:
設計包含min函數的棧。
定義棧的數據結構,要求添加一個min函數,能夠得到棧的最小元素。
要求函數min、push以及pop的時間復雜度都是O(1)。
********************************************************************
*/
#include
<
vector
>
using
namespace
std;
template
<
class
T
>
class
stack
{
private
:
T
*
elements;
int
count, top;
int
*
minPos;
public
:
stack(
int
n)
{
top
=
0
;
count
=
n;
minPos
=
new
int
[count];
elements
=
new
T[count];
if
(elements
==
NULL
||
minPos
==
NULL)
{
count
=
0
;
cout
<<
"
no more memory.
"
<<
endl;
}
}
void
push(T element)
{
if
(top
>=
count)
{
cout
<<
"
stack is full.
"
<<
endl;
}
else
{
if
(top
<=
0
||
element
<
elements[top
-
1
])
{
minPos[top]
=
top;
}
else
{
minPos[top]
=
minPos[top
-
1
];
}
elements[top
++
]
=
element;
}
}
T pop()
{
if
(top
<=
0
)
{
throw
"
no element in stack
"
;
}
else
{
return
elements[
--
top];
}
}
T min()
{
if
(top
<=
0
)
throw
"
no element in stack
"
;
return
elements[minPos[top
-
1
]];
}
bool
empty()
{
return
top
<=
0
;
}
~
stack()
{
delete[] elements;
delete[] minPos;
}
}
;
void
Test_StackWithMinFunc()
{
stack
<
int
>
st(
20
);
int
val[]
=
{
6
,
7
,
1
,
3
,
9
,
11
}
;
int
len
=
sizeof
(val)
/
sizeof
(val[
0
]);
for
(
int
i
=
0
; i
<
len; i
++
)
{
st.push(val[i]);
cout
<<
st.min()
<<
endl;
}
while
(
!
st.empty())
{
cout
<<
st.min()
<<
endl;
st.pop();
}
}
發表于 2011-05-26 14:20
沉思的狗
閱讀(265)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
<
2011年5月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
導航
BlogJava
首頁
發新隨筆
發新文章
聯系
聚合
管理
統計
隨筆: 115
文章: 1
評論: 86
引用: 0
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆檔案
(115)
2015年1月 (1)
2011年5月 (12)
2011年4月 (2)
2010年9月 (2)
2010年8月 (4)
2009年9月 (1)
2009年6月 (1)
2009年3月 (1)
2008年6月 (1)
2008年1月 (2)
2007年7月 (2)
2007年6月 (2)
2007年5月 (4)
2007年4月 (1)
2007年1月 (1)
2006年12月 (1)
2006年11月 (2)
2006年10月 (2)
2006年9月 (3)
2006年8月 (6)
2006年7月 (1)
2006年6月 (2)
2006年5月 (10)
2006年4月 (50)
2006年3月 (1)
網址
http://blog.csdn.net/Unagain
v_JULY_v
搜索
積分與排名
積分 - 210886
排名 - 266
最新評論
1.?re: 使用Policy文件來設置Java的安全策略[未登錄]
ss
--啊啊
2.?re: Jni中C++和Java的參數傳遞
老大,Long 是J啊,不是L啊,可害苦我了,趕緊改回來吧;
--cnhua5
3.?re: Jni中C++和Java的參數傳遞
樓主,在jni里返回String和C++里獲取的為什么不一樣,比如在java里看到的值是57891234,在C++里顯示的是5789@,這是為什么?。?
--chr
4.?re: 螺旋數字與坐標
對我的項目很有幫助。
謝謝
--cs221313
5.?re: Jni中C++和Java的參數傳遞
long的符號表寫錯了,作為初學者亞歷山大啊
--hhhhhh
閱讀排行榜
1.?Jni中C++和Java的參數傳遞 (63525)
2.?本地計算機上的 MSSQLSERVER 服務啟動后又停止了。一些服務自動停止,如果它們沒有什么可做的,例如“性能日志和警報”服務。[用批處理解決](22461)
3.?使用Policy文件來設置Java的安全策略(10508)
4.?一個簡單的十六進制計算器(出自Win程序設計)(8747)
5.?VC++6.0 全部默認快捷鍵(6213)
評論排行榜
1.?Upload Server (HTTP 上傳服務JAVA程序) 速度極快(11)
2.?Jni中C++和Java的參數傳遞 (10)
3.?垃圾軟件反刪除批處理文件 (7)
4.?剛寫的八皇后問題 - 遞歸 (隨便你定義幾個皇后了)JAVA(4)
5.?火車運煤問題(4)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 沉思的狗
[ThinkingDog]是一個積極向上、樂觀、熱心的人。
主站蜘蛛池模板:
亚洲精品无码av片
|
亚洲jjzzjjzz在线播放
|
日本一区二区在线免费观看
|
日本一区二区三区免费高清
|
国产精品亚洲片夜色在线
|
日韩在线免费视频
|
国产精品久久亚洲不卡动漫
|
人禽杂交18禁网站免费
|
国产精品亚洲一区二区麻豆
|
成年免费大片黄在线观看岛国
|
精品亚洲AV无码一区二区三区
|
国产精品永久免费视频
|
亚洲不卡无码av中文字幕
|
黄色毛片免费网站
|
国产偷窥女洗浴在线观看亚洲
|
久久高潮一级毛片免费
|
亚洲Av永久无码精品三区在线
|
成人无码精品1区2区3区免费看
|
亚洲高清在线mv
|
国产麻豆视频免费观看
|
亚洲精品无码成人
|
免费一区二区视频
|
四虎国产精品免费永久在线
|
亚洲国产精品成人精品无码区在线
|
黄色永久免费网站
|
亚洲欧洲日产国码久在线
|
国产精品免费一级在线观看
|
人成免费在线视频
|
亚洲AV电影院在线观看
|
一个人在线观看视频免费
|
精品国产亚洲一区二区三区在线观看
|
免费无码又爽又刺激一高潮
|
亚洲人色大成年网站在线观看
|
国产特级淫片免费看
|
久久久久女教师免费一区
|
亚洲精品中文字幕麻豆
|
日本一道本高清免费
|
免费91麻豆精品国产自产在线观看
|
亚洲国产成人精品无码一区二区
|
免费人成黄页在线观看日本
|
亚洲国产精品张柏芝在线观看
|