算法學習
C++ 及算法
C++博客
首頁
新隨筆
聯系
管理
最小堆的實現(c++模板)
#define
MAXN 10000
template
<
typename Type
>
class
Heap
{
private
:
int
size;
Type data[MAXN
+
1
];
void
siftdown(
int
pos );
public
:
Heap();
void
push( Type key );
Type pop();
void
make_heap();
bool
empty();
void
clear();
int
get_size();
}
;
template
<
typename Type
>
Heap
<
Type
>
::Heap()
{
size
=
0
; }
template
<
typename Type
>
int
Heap
<
Type
>
::get_size()
{
return
size; }
template
<
typename Type
>
bool
Heap
<
Type
>
::empty()
{
return
size
==
0
;}
template
<
typename Type
>
void
Heap
<
Type
>
::clear()
{
size
=
0
; }
template
<
typename Type
>
void
Heap
<
Type
>
::siftdown(
int
pos )
{
while
( pos
<<
1
<=
size )
{
int
t
=
pos
<<
1
;
if
( (pos
<<
1
)
+
1
<=
size
&&
data[(pos
<<
1
)
+
1
]
<
data[t] ) t
=
(pos
<<
1
)
+
1
;
if
( data[t]
<
data[pos] )
{
Type tmp
=
data[t]; data[t]
=
data[pos]; data[pos]
=
tmp;
pos
=
t; }
else
break
;
}
}
template
<
typename Type
>
void
Heap
<
Type
>
::push( Type key )
{
data[
++
size]
=
key;
int
pos
=
size;
while
( pos
>
1
)
{
if
( data[pos
>>
1
]
>
data[pos] )
{
Type tmp
=
data[pos];
data[pos]
=
data[pos
>>
1
]; data[pos
>>
1
]
=
tmp;
pos
>>=
1
; }
else
break
;
}
}
template
<
typename Type
>
Type Heap
<
Type
>
::pop()
{
Type tmp
=
data[
1
]; data[
1
]
=
data[size];
data[size]
=
tmp; size
--
;
siftdown(
1
);
return
data[size
+
1
];
}
posted on 2009-04-16 18:31
Darren
閱讀(4364)
評論(4)
編輯
收藏
引用
評論:
#
re: 最小堆的實現(c++模板) 2009-04-16 22:57 |
打醬油
傳說中的手寫堆?Orz。。。
回復
更多評論
#
re: 最小堆的實現(c++模板) 2009-04-17 16:57 |
brightcoder
void make_heap()定義哪去了?
回復
更多評論
#
re: 最小堆的實現(c++模板) 2009-04-17 17:04 |
Darren
@brightcoder
那個應該很好寫了,循環一次就行了。
本來是要寫的,不過發現一次次插入就能建堆了。
回復
更多評論
#
re: 最小堆的實現(c++模板)
2009-05-17 16:55 |
myo1olove
高人!!!
太敬佩你了,我已‘偷借’你好幾篇代碼了!!!
thank you
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆分類
動態規劃(13)
數據結構(11)
搜索(9)
圖論(10)
未分類(6)
ACMers
搜索
積分與排名
積分 - 110580
排名 - 231
最新隨筆
1.?換個博客,重新開始學習。。。
2.?pku 1691 Painting A Board 狀態壓縮DP
3.?HDU 1255
4.?PKU 1151
5.?2009年ACM-ICPC亞洲區預選賽共設十五個賽區如下(按現場賽日期排序)
6.?acmer必看的26個對acm態度
7.?ZJU 3228 Searching the String ( AC 自動機 )
8.?Pku 3169 Layout
9.?Pku 1986 Distance Queries
10.?Pku 1276 Cash Machine
最新評論
1.?re: AVL樹的插入和刪除操作
評論內容較長,點擊標題查看
--jasonkent27@163.com
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 Darren
国产精品久久成人影院
|
亚洲欧美日韩中文久久
|
91秦先生久久久久久久
|
一本大道久久香蕉成人网
|
国内精品人妻无码久久久影院导航
|
久久精品国产亚洲77777
|
狠狠色丁香婷婷久久综合不卡
|
国产高清美女一级a毛片久久w
|
中文字幕精品无码久久久久久3D日动漫
|
漂亮人妻被黑人久久精品
|
国产三级精品久久
|
久久久久人妻精品一区
|
日本国产精品久久
|
99久久精品免费国产大片
|
久久综合国产乱子伦精品免费
|
日韩久久无码免费毛片软件
|
九九久久99综合一区二区
|
午夜精品久久久久久久
|
久久亚洲精品无码观看不卡
|
国产一区二区三区久久
|
久久亚洲精品国产精品
|
久久久久精品国产亚洲AV无码
|
久久99精品国产麻豆不卡
|
久久噜噜电影你懂的
|
久久久久AV综合网成人
|
国产综合久久久久久鬼色
|
伊人久久大香线蕉亚洲
|
久久久亚洲裙底偷窥综合
|
久久久久久久免费视频
|
久久亚洲国产精品123区
|
国产精品久久久99
|
久久人人爽人爽人人爽av
|
国产成人无码精品久久久久免费
|
久久96国产精品久久久
|
久久国产欧美日韩精品
|
国产成人久久激情91
|
久久精品国产免费观看
|
一本大道久久东京热无码AV
|
久久精品国产亚洲AV影院
|
天天躁日日躁狠狠久久
|
久久精品国产亚洲精品2020
|