青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 8  文章 - 26  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(5)

隨筆檔案

文章分類

文章檔案

相冊

C++語言

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

HBLT可用于實現優先級隊列,并可實現兩個優先級隊列的合并操作.
(如發現錯誤請留言)
  1//高度優先左高樹(HBLT)實現
  2#ifndef HBLT_H
  3#define HBLT_H
  4#include <queue>
  5//定義HBLT節點結構
  6template<class T>
  7class HBLTNode
  8{
  9
 10public:
 11HBLTNode(T &e,int s)
 12{
 13data=e;
 14sh=s;
 15RightChild=LeftChild=NULL;
 16}

 17
 18public:
 19    T data;
 20    int sh;//高度因子
 21    HBLTNode<T> *RightChild,*LeftChild;
 22}
;
 23
 24//定義HBLT樹結構
 25template<class T>
 26class HBLT
 27{
 28public:
 29    HBLT(){size=0,root=NULL;}
 30    virtual ~HBLT();
 31    HBLT<T>& Insert(T e);//插入新元素
 32    HBLT<T>& DeleteMax(T &e);//刪除并返回最大元素
 33    HBLT<T>& Meld(HBLT<T>& x);
 34    bool IsEmpty(){return root==NULL?true:false;}
 35    void Initialize(T a[],int n);//對HBLT樹重新初始化
 36    int Size(){return size;}
 37private:
 38
 39 HBLTNode<T> *root;//根節點指針
 40 int size;
 41 void Meld(HBLTNode<T>*&x,HBLTNode<T>*y);//將以x,y為根的兩棵HBLT樹合并
 42 void PostVisit(HBLTNode<T> *root);//對樹進行后序遍歷刪除節點
 43
 44}
;
 45
 46
 47template<class T>
 48HBLT<T>::~HBLT()
 49{
 50PostVisit(root);
 51}

 52//----------------------------------------------------------
 53template<class T>
 54void HBLT<T>::Meld(HBLTNode<T>*&x,HBLTNode<T>*y)
 55{
 56if(!y)//y為空樹
 57 return;
 58if(!x)//x為空樹
 59{
 60x=y;
 61return;
 62}

 63
 64if(x->data<y->data) swap(x,y);//保證x指向大值
 65
 66//遞歸合并x的右子樹與y
 67Meld(x->RightChild,y);
 68
 69if(!x->LeftChild)//如果X的左子樹為空則將右子樹移向左邊
 70{
 71x->LeftChild=x->RightChild;
 72x->RightChild=NULL;
 73}

 74else
 75{
 76if(x->LeftChild->sh<x->RightChild->sh)//左子樹沒有右子樹高
 77{
 78swap(x->LeftChild,x->RightChild);
 79x->sh=x->RightChild->sh+1;
 80}

 81}
//if
 82
 83}

 84//-------------------------------------------------------------
 85template<class T>
 86HBLT<T>& HBLT<T>::Insert(T e)
 87{
 88HBLTNode<T> *NewNode=new HBLTNode<T>(e,1);
 89Meld(root,NewNode);
 90size++;
 91return *this;
 92}

 93
 94//-------------------------------------------------------------
 95template<class T>
 96HBLT<T>& HBLT<T>::DeleteMax(T &e)
 97{
 98
 99e=root->data;
100HBLTNode<T> *Left=root->LeftChild;
101HBLTNode<T> *Right=root->RightChild;
102root=Left;
103Meld(root,Right);
104return *this;
105}

106
107//-------------------------------------------------------------
108template<class T>
109HBLT<T>& HBLT<T>::Meld(HBLT<T>& x)
110{
111Meld(root,x.root);
112x.root=NULL;
113size=size+x.size;
114return *this;
115}

116//-------------------------------------------------------------
117template<class T>
118void HBLT<T>::PostVisit(HBLTNode<T> *root)
119{
120if(root)
121{
122PostVisit(root->LeftChild);
123PostVisit(root->RightChild);
124delete root;
125}

126}

127//-------------------------------------------------------------
128template<class T>
129void HBLT<T>::Initialize(T a[],int n)
130{
131if(root)
132  PostVisit(root);//刪除以前的節點
133size=n;
134queue<HBLTNode<T>* > Q;
135for(int i=0;i<n;i++)
136{
137HBLTNode<T> *NewNode=new HBLTNode<T>(a[i],1);
138Q.push(NewNode);
139}

140
141for(i=1;i<=n-1;i++)
142{
143HBLTNode<T> *Node1 = Q.front();Q.pop();
144HBLTNode<T> *Node2 = Q.front();Q.pop();
145Meld(Node1,Node2);
146Q.push(Node1);
147}

148
149root = Q.front();
150}

151#endif
測試代碼:
MainApp.cpp
 1
 2#include <iostream>
 3#include "HBLT.h"
 4using namespace std;
 5void main()
 6{
 7    int a[5]={6,8,3,6,1};
 8    HBLT<int> hblt;
 9    hblt.Insert(1).Insert(4).Insert(2);
10    hblt.Initialize(a,5);
11    HBLT<int> hblt2;
12    hblt2.Insert(11).Insert(7);
13    hblt.Meld(hblt2);
14    int out;
15   while(!hblt.IsEmpty()) 
16   {
17   hblt.DeleteMax(out);
18   cout<<out<<endl;
19   }

20cout<<"Size:"<<hblt.Size();
21}
posted on 2008-09-17 21:32 楊彬彬 閱讀(1581) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区精美| 国产在线播精品第三| 99国产精品99久久久久久粉嫩| 亚洲欧美日韩精品在线| 亚洲欧美国产日韩天堂区| 亚洲欧美一区二区原创| 欧美诱惑福利视频| 久久亚洲私人国产精品va| 欧美成人亚洲成人| 亚洲激情中文1区| 亚洲欧洲综合另类| 在线天堂一区av电影| 午夜久久久久久| 欧美成人综合在线| 亚洲精品三级| 性欧美长视频| 欧美国产91| 国产欧美精品一区二区色综合| 你懂的视频欧美| 欧美久久九九| 99re66热这里只有精品4| 在线亚洲一区观看| 久久午夜影视| 欧美三级电影大全| 精品不卡在线| 亚洲一区二区三区影院| 久久婷婷久久| 一区二区三区高清在线| 久久另类ts人妖一区二区| 欧美三级电影精品| 亚洲第一主播视频| 欧美在线视频不卡| 亚洲一区二区三区免费视频| 久久婷婷一区| 日韩午夜在线播放| 久久精品一区二区国产| 欧美日韩精品综合| 亚洲黄色片网站| 久久久一区二区| 久久国产精品一区二区| 欧美午夜不卡在线观看免费 | 久久综合久久综合九色| 日韩亚洲欧美成人一区| 久久免费精品视频| 亚洲欧美制服中文字幕| 国产中文一区二区三区| 亚洲视频狠狠| 亚洲精品国产精品久久清纯直播| 久久精品国产精品亚洲| 一区二区黄色| 欧美日韩午夜| 一个人看的www久久| 欧美黄色aa电影| 久久精品欧美日韩| 欧美中在线观看| 亚洲二区在线视频| 久久中文字幕一区| 在线日本成人| 麻豆久久久9性大片| 久久精品人人做人人综合| 国产日韩精品视频一区二区三区| 亚洲综合国产| 制服丝袜亚洲播放| 欧美调教vk| 午夜精品福利一区二区三区av| 亚洲欧洲另类| 欧美深夜福利| 欧美制服第一页| 久久成人精品视频| 美女露胸一区二区三区| 在线观看亚洲| 欧美激情亚洲激情| 欧美日韩不卡一区| 亚洲欧美日韩国产成人| 亚洲人成网站在线播| 欧美成人综合| 国产午夜精品一区理论片飘花| 欧美亚洲免费电影| 久久精品国产99国产精品| 在线观看视频欧美| 亚洲裸体视频| 国产欧美日本一区二区三区| 久久蜜臀精品av| 美国十次成人| 亚洲女人天堂成人av在线| 亚洲欧美激情视频| 亚洲国产精品精华液2区45| 亚洲精品国产精品乱码不99按摩| 欧美日韩精品二区| 久久久女女女女999久久| 欧美大片91| 国产精品影视天天线| 久久天天狠狠| 欧美日韩精品不卡| 久久人人爽国产| 欧美日韩的一区二区| 久久国产精品72免费观看| 老司机午夜免费精品视频| 久久精品一二三| 欧美成人自拍| 欧美一区激情视频在线观看| 免费欧美日韩国产三级电影| 亚洲一二三区在线| 久久久久在线| 新狼窝色av性久久久久久| 亚洲午夜在线观看视频在线| 99国产精品久久久久久久| 亚洲中字在线| 99re66热这里只有精品3直播| 亚洲女同同性videoxma| 亚洲精品国产系列| 久久国产手机看片| 亚洲欧美激情视频| 亚洲人午夜精品| 国内伊人久久久久久网站视频| 亚洲精品亚洲人成人网| 一区二区三区在线观看欧美| 亚洲一级黄色| 一区二区高清在线| 欧美成人一区二区三区片免费| 久久久久久成人| 激情婷婷久久| 欧美在线影院| 欧美一区成人| 国产精品久久999| 亚洲人成在线观看| 亚洲精品久久久一区二区三区| 久久激情视频| 看片网站欧美日韩| 激情欧美国产欧美| 久久久久这里只有精品| 久久夜色精品国产欧美乱| 国产伦精品一区二区三区| 亚洲一区在线免费观看| 亚洲一区视频| 国产精品伦子伦免费视频| 中国亚洲黄色| 国产精品毛片一区二区三区| 在线视频你懂得一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美一区二区播放| 国产精品免费看片| 亚洲图片欧洲图片av| 亚洲男人的天堂在线| 国产精品v一区二区三区| 国产精品国产三级国产aⅴ入口| 久久午夜视频| 亚洲电影免费观看高清完整版在线观看 | 久久久久久穴| 欧美xart系列高清| 亚洲黄一区二区| 欧美精品色网| 亚洲私人影院在线观看| 欧美一区二区视频免费观看| 亚洲欧美亚洲| 久久亚洲综合色| 亚洲精品乱码久久久久久按摩观| 欧美国产日本韩| 一本色道久久88亚洲综合88| 亚洲欧美中日韩| 精品成人乱色一区二区| 免费在线观看精品| 欧美不卡视频一区| 亚洲第一视频| 亚洲一区影音先锋| 国产综合久久久久久| 免费成人av| 亚洲性图久久| 狼狼综合久久久久综合网| 亚洲精品中文字| 国产精品亚洲激情| 免费不卡中文字幕视频| 在线天堂一区av电影| 嫩草影视亚洲| 午夜精品亚洲| 91久久国产精品91久久性色| 欧美日一区二区在线观看 | 亚洲每日更新| 国产精品自拍小视频| 久久久av毛片精品| 9色porny自拍视频一区二区| 久久久久久网站| 亚洲香蕉伊综合在人在线视看| 国产日韩在线不卡| 欧美日韩另类丝袜其他| 久久久欧美一区二区| 欧美日韩日本视频| 欧美亚洲色图校园春色| 亚洲伦理网站| 欧美国产乱视频| 久久精品欧美日韩精品| 亚洲线精品一区二区三区八戒| 亚洲国产成人av在线| 国产婷婷成人久久av免费高清| 欧美日韩ab片| 欧美韩日一区二区三区| 久久天天狠狠| 久久久久久久999精品视频| 午夜精品一区二区在线观看| 一本一道久久综合狠狠老精东影业|