算法學習
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
搜索
積分與排名
積分 - 110595
排名 - 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
777午夜精品久久av蜜臀
|
亚洲美日韩Av中文字幕无码久久久妻妇
|
成人午夜精品无码区久久
|
精品久久亚洲中文无码
|
精品综合久久久久久888蜜芽
|
亚洲国产精品久久久久
|
亚洲一区精品伊人久久伊人
|
久久综合香蕉国产蜜臀AV
|
99久久精品无码一区二区毛片
|
日本久久久久久久久久
|
久久一日本道色综合久久
|
久久人妻少妇嫩草AV蜜桃
|
久久婷婷成人综合色综合
|
色综合合久久天天给综看
|
国内精品伊人久久久久av一坑
|
久久er国产精品免费观看8
|
伊人久久大香线蕉av不变影院
|
国产精品久久久久久久久久免费
|
日本精品久久久久影院日本
|
国产精品久久成人影院
|
热99RE久久精品这里都是精品免费
|
91精品国产9l久久久久
|
久久天天躁狠狠躁夜夜躁2014
|
国产成人香蕉久久久久
|
精品无码久久久久久尤物
|
欧美激情一区二区久久久
|
精品国产婷婷久久久
|
精品久久久久久久久中文字幕
|
久久久久久久久久久
|
久久综合一区二区无码
|
国内精品久久久久久久影视麻豆
|
久久久久亚洲av无码专区喷水
|
久久久久免费精品国产
|
欧美亚洲日本久久精品
|
久久精品国产欧美日韩
|
国产AV影片久久久久久
|
日韩精品国产自在久久现线拍
|
91精品国产色综合久久
|
精品久久人妻av中文字幕
|
国产欧美久久久精品
|
蜜桃麻豆www久久
|