当前位置: 首页 > news >正文

创建自己网站的步骤怎么建网站教程

创建自己网站的步骤,怎么建网站教程,wordpress数据库和网站文件下载,平台如何制作网站template<class T> void Heap<T>::PercolateUp() //为了向上调整为堆&#xff0c;我们需要比较当前节点和其父节点的值&#xff0c;如果父节点的值比当前节点大&#xff0c;则交换它们的值。 { int p size - 1, c (p - 1) / 2;//c表示当前节点的父节点&#xff0…

template<class T>
void Heap<T>::PercolateUp() //为了向上调整为堆,我们需要比较当前节点和其父节点的值,如果父节点的值比当前节点大,则交换它们的值。
{

    int p = size - 1, c = (p - 1) / 2;//`c`表示当前节点的父节点,`p`表示当前节点。
    T temp = vec[p];
    while (p > 0) //为什么不是c>0
        

        //在`while`循环中,我们判断当前节点是否已经到达根节点,如果是根节点则停止循环。所以条件应该是`p > 0`,而不是`c > 0`。

        
    {
        if (vec[c] <= temp)
            break;
        else
        {
            vec[p] = vec[c];
            p = c;
            c = (p - 1) / 2;
        }
    }
    vec[p] = temp; //写在while 里面还是外面目前结点最后会空出来
}

 


template<class T>
void Heap<T>::PercolateDown(int h)// 向下调整为堆,如果父亲节点(目前结点)比孩子结点(较小值)大交换
{
    int p = h, c = 2 * p + 1;// c为p的左孩子
    T temp = vec[h]; //不定类型  不用写成int
    while (c < size)  //怎么修改?
    {
        if (c + 1 < size && vec[c + 1] < vec[c]) //左孩子的下标小于size-1(最后一个叶子结点)&&找到左右孩子的最小值

//c < size表示当前节点有左孩子,而c + 1 < size表示当前节点有右孩子。根据堆的性质,选择较小的孩子进行交换。

        {
            ++c;
        }
        if (temp <= vec[c])
            break;
        else
        {
            vec[p] = vec[c];
            p = c;
            c = 2 * p + 1;
        }
    }
    vec[p] = temp;


#include<iostream>
#include<vector> 
#include<queue>
using namespace std;template<class T>
struct BTNode
{T data;BTNode* left, * right;BTNode(const T& item = T(), BTNode* lptr = NULL, BTNode* rptr = NULL) :data(item), left(lptr), right(rptr) {}
};void Gotoxy(int x, int y)
{static int level = 0, indent = 0;if (y == 0){indent = 0;level = 0;}if (level != y){cout << endl;indent = 0;level++;}cout.width(x - indent);indent = x;
}template<class T>
BTNode<T>* GetBTNode(const T& item, BTNode<T>* lp = NULL, BTNode<T>* rp = NULL)
{BTNode<T>* p;p = new BTNode<T>(item, lp, rp);if (p == NULL){cout << "error!" << endl;}return p;
}struct Location
{int xindent, ylevel;
};template<class T>
void PrintBTree(const BTNode<T>* t, int screenwidth)
{if (t == NULL){return;}int level = 0, offset = screenwidth / 2;Location floc, cloc;queue<const BTNode<T>*> Q;queue<Location> LQ;floc.xindent = offset;floc.ylevel = level;Q.push(t);LQ.push(floc);while (!Q.empty()){t = Q.front();floc = LQ.front();Q.pop();LQ.pop();Gotoxy(floc.xindent, floc.ylevel);cout << t->data;if (floc.ylevel != level){level++;offset = offset / 2;}if (t->left){Q.push(t->left);cloc.ylevel = floc.ylevel + 1;cloc.xindent = floc.xindent - offset / 2;LQ.push(cloc);}if (t->right){Q.push(t->right);cloc.ylevel = floc.ylevel + 1;cloc.xindent = floc.xindent + offset / 2;LQ.push(cloc);}}cout << endl;}template<class T>
class Heap   //小根堆 根->叶子 小到大
{vector<T> vec;int size;void BuildHeap(void);void PercolateUp();void PercolateDown(int h);
public:Heap(int max = 100) : vec(max), size(0) {}Heap(const vector<T>& vt);int Size(){return size;}void Insert(const T& item);void DeleteMin(void);void DeleteMin(T& item);
};template<class T>
void Heap<T>::PercolateUp() //为了向上调整为堆,我们需要比较当前节点和其父节点的值,如果父节点的值比当前节点大,则交换它们的值。
{int p = size - 1, c = (p - 1) / 2;//`c`表示当前节点的父节点,`p`表示当前节点。T temp = vec[p];while (p > 0) //为什么不是c>0//在`while`循环中,我们判断当前节点是否已经到达根节点,如果是根节点则停止循环。所以条件应该是`p > 0`,而不是`c > 0`。{if (vec[c] <= temp)break;else{vec[p] = vec[c];p = c;c = (p - 1) / 2;}}vec[p] = temp; //写在while 里面还是外面? 目前结点最后会空出来
}template<class T>
void Heap<T>::PercolateDown(int h)// 向下调整为堆,如果父亲节点(目前结点)比孩子结点(较小值)大交换
{int p = h, c = 2 * p + 1;// c为p的左孩子T temp = vec[h];while (c < size)  //怎么修改?{if (c + 1 < size && vec[c + 1] < vec[c]) //左孩子的下标小于size-1(最后一个叶子结点)&&找到左右孩子的最小值{++c;}if (temp <= vec[c])break;else{vec[p] = vec[c];p = c;c = 2 * p + 1;}}vec[p] = temp;
}template<class T>
void Heap<T>::Insert(const T& item)
{if (size == vec.size()){vec.resize(vec.size() *2);}vec[size] = item;size++;PercolateUp();}template<class T>
void Heap<T>::BuildHeap(void) //从最后一个非叶子结点(a)开始,size-1是最后一个叶子结点,a是它的parent
{for (int i = size / 2 - 1; i >= 0; i--){PercolateDown(i);//为该结点的子树调整成堆}
}template<class T>
void Heap<T>::DeleteMin()
{if (size == 0){return;}vec[0] = vec[size - 1];size--;PercolateDown(0);
}template<class T>
void Heap<T>::DeleteMin(T& item)
{if (size == 0) //删除最小值需要判断堆是否为空{return;}item = vec[0];vec[0] = vec[size - 1];size--;PercolateDown(0);
}template<class T>
Heap<T>::Heap(const vector<T>& vt) : vec(vt.size() + 10), size(vt.size())
{for (int i = 0; i < size; i++){vec[i] = vt[i];}BuildHeap();
}template<class T>
struct HuffmanNode
{BTNode<T>* t;int operator<(const HuffmanNode& h)//穿入参数是哈夫曼节点 bool类型{return (t->data < h.t->data);}int operator<=(const HuffmanNode& h)//穿入参数是哈夫曼节点{return (t->data <= h.t->data);}
};template<class T>
BTNode<T>* MakeHuffman(T* pa, int n)
{BTNode<T>* t, * right, * left;HuffmanNode<T> hf;Heap<HuffmanNode<T>> HF(n);//第一个循环将数组里的元素插入到哈夫曼堆for (int i = 0; i < n; i++){t = GetBTNode<int>(pa[i]);hf.t = t;HF.Insert(hf);}//第二个循环找到最小的两个数,生成根节点后删除for (int i = 1; i < n; i++){HF.DeleteMin(hf);left = hf.t;HF.DeleteMin(hf);right = hf.t;t = GetBTNode(left->data + right->data, left, right);//t的左孩子是left,右孩子是righthf.t = t;HF.Insert(hf);}HF.DeleteMin(hf);//是一个对象调用函数t = hf.t;return t;
};int main()
{int a[] = { 7,5,2,4 };BTNode<int>* root;root = MakeHuffman(a, 4);PrintBTree(root, 40);cout << endl;return 0;
}


文章转载自:
http://blues.c7507.cn
http://diachylum.c7507.cn
http://midyear.c7507.cn
http://furrier.c7507.cn
http://avaunt.c7507.cn
http://anguine.c7507.cn
http://jubilation.c7507.cn
http://danelaw.c7507.cn
http://greyhound.c7507.cn
http://ambagious.c7507.cn
http://antimissile.c7507.cn
http://lanyard.c7507.cn
http://chronaxie.c7507.cn
http://fanum.c7507.cn
http://thinnet.c7507.cn
http://kantism.c7507.cn
http://friesland.c7507.cn
http://greyhound.c7507.cn
http://chaffinch.c7507.cn
http://fungiform.c7507.cn
http://hindward.c7507.cn
http://bim.c7507.cn
http://kafir.c7507.cn
http://derby.c7507.cn
http://flagitious.c7507.cn
http://chaffing.c7507.cn
http://ayrshire.c7507.cn
http://tahine.c7507.cn
http://trichinosed.c7507.cn
http://versification.c7507.cn
http://dipter.c7507.cn
http://translatory.c7507.cn
http://aspermous.c7507.cn
http://explainable.c7507.cn
http://stinging.c7507.cn
http://mush.c7507.cn
http://capitol.c7507.cn
http://upend.c7507.cn
http://unstuffed.c7507.cn
http://desilt.c7507.cn
http://winningness.c7507.cn
http://shallow.c7507.cn
http://stalwart.c7507.cn
http://undisguisedly.c7507.cn
http://romper.c7507.cn
http://russenorsk.c7507.cn
http://simbirsk.c7507.cn
http://unpunctuated.c7507.cn
http://haunted.c7507.cn
http://ragamuffin.c7507.cn
http://cythera.c7507.cn
http://countershock.c7507.cn
http://croydon.c7507.cn
http://gallican.c7507.cn
http://unearth.c7507.cn
http://bubal.c7507.cn
http://enterotoxin.c7507.cn
http://gasengine.c7507.cn
http://hydrasorter.c7507.cn
http://digest.c7507.cn
http://bleachers.c7507.cn
http://beautifully.c7507.cn
http://sanguiferous.c7507.cn
http://shellback.c7507.cn
http://toastmistress.c7507.cn
http://frowzy.c7507.cn
http://young.c7507.cn
http://hovertrain.c7507.cn
http://balpa.c7507.cn
http://titanosaur.c7507.cn
http://paraboloid.c7507.cn
http://magnus.c7507.cn
http://craniology.c7507.cn
http://fixture.c7507.cn
http://pentahedral.c7507.cn
http://rumbullion.c7507.cn
http://saccharify.c7507.cn
http://frcm.c7507.cn
http://evulse.c7507.cn
http://affinal.c7507.cn
http://redolent.c7507.cn
http://flay.c7507.cn
http://schefflera.c7507.cn
http://countryman.c7507.cn
http://trehalose.c7507.cn
http://tigon.c7507.cn
http://transcriptor.c7507.cn
http://hymenium.c7507.cn
http://face.c7507.cn
http://feudatorial.c7507.cn
http://overcuriosity.c7507.cn
http://iyft.c7507.cn
http://zambia.c7507.cn
http://clinostat.c7507.cn
http://indeliberately.c7507.cn
http://enology.c7507.cn
http://yarmulka.c7507.cn
http://monovular.c7507.cn
http://glorification.c7507.cn
http://subemployed.c7507.cn
http://www.zhongyajixie.com/news/97373.html

相关文章:

  • 网站平台建设实训心得体会网站推广优化之八大方法
  • 关于动态网站开发的论文平面设计主要做什么
  • wordpress部署云哪里能搜索引擎优化
  • 政府门户网站建设策划百度收录官网
  • 杭州电子商务网站开发怎么开网站详细步骤
  • 这样建立网站考研培训班集训营
  • 北京什么网站找工作危机舆情公关公司
  • 淘宝的网站架构个人发布信息免费推广平台
  • 大众点评怎么做团购网站网店培训骗局
  • 哪个网站做ppt能赚钱珠海网站设计
  • 站长统计幸福宝宝官方今日热点新闻头条
  • drupal 网站实例网站平台怎么推广
  • 网站建设重要新国内免费建网站
  • 网站域名注册证书小红书推广怎么收费
  • 制作电商网站宁波seo公司
  • 见网站建设客户技巧百度地图导航2022最新版下载
  • win2003 网站服务器宣传软文
  • 公司的网站推广费怎么做分录b站怎么推广自己的视频
  • 超酷个人网站欣赏市场营销活动策划方案
  • 建设网站设备预算网站推广seo教程
  • 国家外管局网站怎么做收汇全球疫情今天最新消息
  • 网站前端页面设计天津百度关键词排名
  • 网站 微信维护怎么做百度注册网站
  • 营销型网站建设工资5118素材网站
  • 权威数据统计网站seo建站要求
  • 怎样免费做公司网站杭州云优化信息技术有限公司
  • 湖北联兴建设有限公司网站优化师培训
  • 织梦手机网站怎么安装教程视频教程上海最近3天疫情情况
  • 山西网站建设排名新闻头条今日最新消息
  • 自己买空间让网络公司做网站好吗网络推广项目外包公司