[ThinkingDog]是一個(gè)積極向上、樂(lè)觀(guān)、熱心的人。
沉思的狗の博客
[ThinkingDog]歡迎您的光臨,請(qǐng)多多指教!
微軟等數(shù)據(jù)結(jié)構(gòu)+算法面試100題_全部出爐_02
/**/
/*
*******************************************************************
purpose:
設(shè)計(jì)包含min函數(shù)的棧。
定義棧的數(shù)據(jù)結(jié)構(gòu),要求添加一個(gè)min函數(shù),能夠得到棧的最小元素。
要求函數(shù)min、push以及pop的時(shí)間復(fù)雜度都是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();
}
}
發(fā)表于 2011-05-26 14:20
沉思的狗
閱讀(272)
評(píng)論(0)
編輯
收藏
新用戶(hù)注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶(hù)
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
<
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
導(dǎo)航
BlogJava
首頁(yè)
發(fā)新隨筆
發(fā)新文章
聯(lián)系
聚合
管理
統(tǒng)計(jì)
隨筆: 115
文章: 1
評(píng)論: 86
引用: 0
常用鏈接
我的隨筆
我的文章
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(5)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆檔案
(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)
網(wǎng)址
http://blog.csdn.net/Unagain
v_JULY_v
搜索
積分與排名
積分 - 211653
排名 - 267
最新評(píng)論
1.?re: 使用Policy文件來(lái)設(shè)置Java的安全策略[未登錄](méi)
ss
--啊啊
2.?re: Jni中C++和Java的參數(shù)傳遞
老大,Long 是J啊,不是L啊,可害苦我了,趕緊改回來(lái)吧;
--cnhua5
3.?re: Jni中C++和Java的參數(shù)傳遞
樓主,在jni里返回String和C++里獲取的為什么不一樣,比如在java里看到的值是57891234,在C++里顯示的是5789@,這是為什么?。?
--chr
4.?re: 螺旋數(shù)字與坐標(biāo)
對(duì)我的項(xiàng)目很有幫助。
謝謝
--cs221313
5.?re: Jni中C++和Java的參數(shù)傳遞
long的符號(hào)表寫(xiě)錯(cuò)了,作為初學(xué)者亞歷山大啊
--hhhhhh
閱讀排行榜
1.?Jni中C++和Java的參數(shù)傳遞 (63568)
2.?本地計(jì)算機(jī)上的 MSSQLSERVER 服務(wù)啟動(dòng)后又停止了。一些服務(wù)自動(dòng)停止,如果它們沒(méi)有什么可做的,例如“性能日志和警報(bào)”服務(wù)。[用批處理解決](22466)
3.?使用Policy文件來(lái)設(shè)置Java的安全策略(10527)
4.?一個(gè)簡(jiǎn)單的十六進(jìn)制計(jì)算器(出自Win程序設(shè)計(jì))(8753)
5.?VC++6.0 全部默認(rèn)快捷鍵(6229)
評(píng)論排行榜
1.?Upload Server (HTTP 上傳服務(wù)JAVA程序) 速度極快(11)
2.?Jni中C++和Java的參數(shù)傳遞 (10)
3.?垃圾軟件反刪除批處理文件 (7)
4.?剛寫(xiě)的八皇后問(wèn)題 - 遞歸 (隨便你定義幾個(gè)皇后了)JAVA(4)
5.?火車(chē)運(yùn)煤?jiǎn)栴}(4)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 沉思的狗
[ThinkingDog]是一個(gè)積極向上、樂(lè)觀(guān)、熱心的人。
主站蜘蛛池模板:
成人永久免费福利视频网站
|
日本在线看片免费
|
国产国产人免费人成免费视频
|
午夜老司机永久免费看片
|
国产成人亚洲综合无码
|
一边摸一边爽一边叫床免费视频
|
久久精品国产亚洲av麻豆色欲
|
j8又粗又长又硬又爽免费视频
|
亚洲精品国产高清嫩草影院
|
无码精品人妻一区二区三区免费
|
亚洲AV无码之日韩精品
|
美女羞羞喷液视频免费
|
亚洲人成影院在线无码观看
|
一级毛片免费毛片毛片
|
亚洲AV无码乱码国产麻豆
|
日韩亚洲人成网站
|
免费人成视频在线观看不卡
|
免费大片黄在线观看
|
国产亚洲午夜高清国产拍精品
|
国产真人无码作爱视频免费
|
亚洲国产成人久久精品影视
|
午夜免费福利网站
|
免费一区二区三区在线视频
|
在线jyzzjyzz免费视频
|
美女扒开屁股让男人桶爽免费
|
久久久久国产亚洲AV麻豆
|
国产午夜精品免费一区二区三区
|
久久精品国产亚洲AV高清热
|
最近中文字幕mv免费高清视频7
|
久久久免费观成人影院
|
亚洲AV人无码综合在线观看
|
亚洲成人免费电影
|
欧美激情综合亚洲一二区
|
伊人久久大香线蕉亚洲
|
国产免费一区二区三区
|
亚洲av无码成人精品国产
|
永久亚洲成a人片777777
|
国产香蕉九九久久精品免费
|
新最免费影视大全在线播放
|
久久久久亚洲精品影视
|
在线看片无码永久免费aⅴ
|