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

數(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://www.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ā)
日韩中文字幕 在线播放| 亚洲奇米精品一区二区| 国产三级亚洲三级在线理论| 免费黄色日韩在线观看| 国产色视频一区在线观看| 日本成人精品一区二区三区| av成人黄色片在线播放| av天堂久久人妻精品加勒比| 人妻少妇被猛烈进入中出视频| 日韩毛片免费看美日韩毛片| 国语对白精品视频在线| 亚洲精品小视频在线观看| 亚洲不卡一区二区在线| 夫妻性生活一级片视频| 亚洲一区二区在线视频在线观看| 夜夜高潮夜夜爽免费观看| 欧美福利免费在线视频| 中文字幕av日韩在线| 美女诱惑福利视频久久久| 国产一区二区三区区别| 91日韩国产中文字幕| 亚洲国产成人久久综合区| 亚洲一区日韩精品颜射 | 日本福利一区二区三区| 四虎精品在线免费视频| 国语对白精品视频在线| 在线蜜臀av中文字幕| 久久精品中文字幕人妻| 日本高清不卡免费在线观看视频一二三区 | 女人的天堂亚洲的天堂欧美| 日本高清久久一区二区三区| 日韩精品诱惑一区二区| 亚洲福利网址一二三区| 精品人妻一区二区三区mp4| 美日韩黄色大片免费看| 国产午夜精品一区二区三区| 欧美日韩免费爱爱视频| 久草手机福利在线观看| 国产精品自拍av一区二区| 亚洲免费观看视频一区二区三区 | 亚洲一区二区三区久久伊人|