欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

數(shù)據(jù)結(jié)構(gòu)C++實現(xiàn)基本的堆

#pragma once

成都創(chuàng)新互聯(lián)公司服務(wù)項目包括清江浦網(wǎng)站建設(shè)、清江浦網(wǎng)站制作、清江浦網(wǎng)頁制作以及清江浦網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,清江浦網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到清江浦省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

#include<vector>

#include<queue>

#include<cassert>

#include<iostream>

using namespace std;

//仿函數(shù)實現(xiàn)在建堆時確定(大小堆)

template<class T>

struct Greater

{

bool operator()(const T& left,const T& right)

{

return left > right;

}

};

template<class T>

struct Less

{

bool operator()(const T& left, const T& right)

{

return left < right;

}

};

template<class T,class Compare = Less<T>>//默認建小堆

class Heap

{

public:

Heap()

{

}

Heap(const T* array, size_t size)

{

assert(array);

for (size_t i = 0; i < size; ++i)

{

_vec.push_back(array[i]);

}

for (int i = _vec.size() / 2 - 1; i >= 0; --i)

{

_AdjustDown(_vec, i, _vec.size());

}

}

Heap(const vector<T>& vec)

{

_vec.swap(vec);

for (int i = _vec.size() / 2 - 1; i >= 0; --i)

{

_AdjustDown(_vec, i, _vec.size());

}

}

void Push(const T& x)

{

_vec.push_back(x);

if (_vec.size() > 0)

_AdjustUp(_vec, _vec.size() - 1);

}

void Pop()

{

swap(_vec[0], _vec[_vec.size() - 1]);

_vec.pop_back();

_AdjustDown(_vec, 0, _vec.size());

}

const T& GetTop()

{

assert(_vec.size() > 0);

return _vec[0];

}

bool Empty()

{

return _vec.empty();

}

size_t Size()

{

return _vec.size();

}

private:

void _AdjustDown(vector<T>& vec,int root,int size)

{

int left = root * 2 + 1;

while (left < size)

{

if (left+1 < size && Compare()(vec[left+1], vec[left]))

++left;

if (Compare()(vec[left], vec[root]))

{

swap(vec[left], vec[root]);

root = left;

left = root * 2 + 1;

}

else

break;

}

}

void _AdjustUp(vector<T>& vec,int index)

{

int parent = index >> 1;

while (Compare()(vec[index], vec[parent]))

{

swap(vec[index], vec[parent]);

index = parent;

parent = index >> 1;

}

}

protected:

vector<T> _vec;//底層使用vector來實現(xiàn)

};

void test()

{

int arr[] = { 1, 2, 8, 9, 7, 4, 6, 5, 11, 10 };

Heap<int> h(arr, sizeof(arr) / sizeof(arr[0]));

h.Push(0);

h.Pop();

cout << h.GetTop() << endl;

h.Pop();

}

文章標題:數(shù)據(jù)結(jié)構(gòu)C++實現(xiàn)基本的堆
本文網(wǎng)址:http://aaarwkj.com/article20/gihsco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、移動網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站、全網(wǎng)營銷推廣、定制網(wǎng)站外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
91制片国产在线观看| 亚洲精品国产高清久久| 日本在线有码中文视频| 精品午夜人妻一区二区| 大片天天看菲色亚洲黄色| 中文字幕乱码在线观看一区| 青青久久精品国产亚洲av| 成人免费毛片内射视频| 一区二区亚洲成人精品| 中文字幕乱码亚洲美女精品| 日本一区不卡二区高清| 国产精品综合日韩精| 农村人妻一区二区三区视频| 四虎海外永久免费地址| 一区二区三区亚洲精品在线| 哪里可以看日韩免费毛片| 蜜臀av成人精品蜜臀av| 黄色录像日本黄色录像| 亚洲一区二区日韩在线| 五月婷久久精品国产亚洲av| 欧美国产日韩激情在线| 欧洲精品亚洲精品日韩专区| 久久99国产精品成人免费| 国产男女猛烈无遮挡av| 国产亚洲一区二区三区午夜| av免费在线观看网页| 中文字幕人妻系列东京热| 国产成人久久久精品一区| 国产综合欧美日韩在线91| 公侵犯人妻中文字幕一区| 亚洲最大成人av在线| 日本人免费一区二区电影| 欧美黄色一级在线免费观看| 亚洲欧美国产另类精品| 欧美精品国产亚洲另类| 国产精品色网在线播放| 亚洲中文字幕乱码一二三| 开裆丝袜高跟啪啪高潮av| 欧美一区二区三区免费精品| 麻豆精品午夜福利在线| 国产精品乱人偷免费视频|