[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伦理
|
色www永久免费视频
|
国产性爱在线观看亚洲黄色一级片
|
亚洲中文字幕无码久久2020
|
国产黄色片免费看
|
亚洲av成人一区二区三区在线观看
|
中文字幕亚洲码在线
|
日韩精品无码人妻免费视频
|
伊人久久五月丁香综合中文亚洲
|
美女被cao免费看在线看网站
|
亚洲国产美女精品久久久久
|
国产精品久久久久久久久免费
|
亚洲va在线va天堂va手机
|
青青草免费在线视频
|
亚洲AV无码专区在线厂
|
亚洲第一区精品观看
|
国产成人高清精品免费观看
|
国产亚洲人成网站观看
|
91香蕉在线观看免费高清
|
亚洲欧洲日产国产最新
|
午夜成人免费视频
|
综合偷自拍亚洲乱中文字幕
|
亚洲精品无码激情AV
|
男人进去女人爽免费视频国产
|
亚洲伊人久久大香线蕉苏妲己
|
免费人成在线观看69式小视频
|
国产亚洲中文日本不卡二区
|
免费a级毛片无码a∨性按摩
|
中出五十路免费视频
|
亚洲精品乱码久久久久久下载
|
日韩欧美亚洲国产精品字幕久久久
|
亚洲Av无码国产情品久久
|
在线观看免费视频网站色
|
亚洲国产中文在线二区三区免
|
日韩免费一级毛片
|
成人影片一区免费观看
|
亚洲成人一级电影
|
亚洲国产精品综合久久网络
|
久久免费的精品国产V∧
|
亚洲国产精品无码中文lv
|
亚洲色无码一区二区三区
|