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

东营网站搭建自己做的网站如何上传

东营网站搭建,自己做的网站如何上传,珠海本地网站,子页面的网站地址怎么做AVL简称平衡二叉树#xff0c;缩写为BBST#xff0c;由苏联数学家 Adelse-Velskil 和 Landis 在 1962 年提出。 二叉树是动态查找的典范#xff0c;但在极限情况下#xff0c;二叉树的查找效果等同于链表#xff0c;而平衡二叉树可以完美的达到 log ⁡ 2 n \log_2 n log2…AVL简称平衡二叉树缩写为BBST由苏联数学家 Adelse-Velskil 和 Landis 在 1962 年提出。 二叉树是动态查找的典范但在极限情况下二叉树的查找效果等同于链表而平衡二叉树可以完美的达到 log ⁡ 2 n \log_2 n log2​n。 一直想深入的研究一下并手写平衡二叉树的插入、删除代码。 可惜的是国内数据结构的神级教材阎蔚敏老师主编《数据结构》一书中并未看到关于AVL树的代码。 例子 将17921214263315402325一次插入到一棵初始化为空的AVL树中画出该二叉平衡树。 解过程和结果如下图所示。 所谓平衡二叉树就是指二叉树的左、右子树的深度差不超过2。每当插入一个新的元素导致左右子树的深度超过2层时需要对二叉树的失衡节点进行平衡保持左右子树高度差在-1到1之间。 可以使用两个整数来表示左右子树的深度前面一个表示左子树的层数右边一个代表右子树的层数。 调整时首先需要找到要平衡的节点。找到调整节点后处理的方法有4种 上图中圆标号1的是左-左结构标号2的是左-右结构标号3的是右-右标号4的是右-左结构这4种结构的处理方式各有不同。 左-左结构即(21)结构 中间节点当作父节点最上面的节点当作右节点最下边节点当作左节点 左-右结构即(2-1)结构 最下面节点当作父节点父节点当作右节点中间节点当作左节点 右-右结构即(-2-1)结构 中间节点当作父节点最上面的节点当作左节点最下边节点当作右节点 右-左结构即(-21)结构 最下面节点当作父节点最上面节点当作左节点中间节点当作右节点 编程中计算左、右子树深度的代码如下 int deep(BBST* b) {if (b 0){return 0;}int ld deep(b-lchild);int rd deep(b-rchild) ;return ld rd ? ld 1 : rd 1; } 有了上面的理论和编程基础我们可以慢慢的调试并手动写出平衡二叉树的插入代码 int BBSTree::insert(ELEMENT* e) {if (mTree 0){mTree newnode(e);mSize 1;return 1;}BBST* t mTree;BBST* tc 0;Stack s;ELEMENT elem;while (1) {if (e-e t-data.e) {return 0;}else if (e-e t-data.e){if (t-rchild 0){tc newnode(e);tc-parent t;t-rchild tc;mSize;break;}else { elem.e (unsigned long long)t;s.push((ELEMENT*)elem);t t-rchild; }}else {if (t-lchild 0){tc newnode(e);tc-parent t;t-lchild tc;mSize;break;}else {elem.e (unsigned long long)t;s.push((ELEMENT*)elem);t t-lchild; }}}while (s.isEmpty() 0) {s.pop(elem);BBST* b (BBST*)elem.e;b-ld deep(b-lchild);b-rd deep(b-rchild);t-ld deep(t-lchild);t-rd deep(t-rchild);int high_diff b-ld - b-rd;int low_diff t-ld - t-rd;if(high_diff 2 low_diff 1){BBST* f (BBST*)b-parent;if (ff-lchild b){f-lchild t;}else if (ff-rchild b){f-rchild t;}t-parent f;BBST* tr t-rchild;t-rchild b;b-parent t;b-lchild tr;if (tr){tr-parent b;}if (b mTree){mTree t;}}else if (high_diff 2 low_diff -1){BBST* f (BBST*)b-parent;if (f-lchild b){f-lchild tc;}else if (f-rchild b){f-rchild tc;}tc-parent f;t-parent tc;if (tc-lchild){tc-lchild-parent t;}t-rchild tc-lchild;b-parent tc;if (tc-rchild){tc-rchild-parent b;}b-lchild tc-rchild;tc-rchild b;tc-lchild t; if (b mTree){mTree tc;}}else if (high_diff -2 low_diff 1){BBST* f (BBST*)b-parent;if (ff-lchild b){f-lchild tc;}else if (ff-rchild b){f-rchild tc;}tc-parent f;b-parent tc;b-rchild tc-lchild;if (tc-lchild){tc-lchild-parent b;}t-parent tc;t-lchild tc-rchild;if (tc-rchild){tc-rchild-parent t;}tc-rchild t;tc-lchild b;if (b mTree){mTree tc;}}else if (high_diff -2 low_diff -1){BBST* f (BBST*)b-parent;if (f f-lchild b){f-lchild t;}else if (f f-rchild b){f-rchild t;}t-parent f;BBST* tl t-lchild;t-lchild b;b-parent t;b-rchild tl;if (tl){tl-parent b;}if (b mTree){mTree t;}}tc t;t b;}return 0; } 完整代码地址 https://github.com/satadriver/dataStruct
http://www.pierceye.com/news/58580/

相关文章:

  • 百度一下首页怎么样做seo
  • 百度经验网站建设如何快速做单页面网站
  • 北京手机网站建设公司百度网站的主要盈利来源不包括
  • 美容类 营销型网站ui设计师创意平台
  • 我要啦免费统计怎么做网站属于网页制作工具
  • 网站建设项目有哪些推广发帖网站
  • mvc 网站开发百度咨询电话人工台
  • 中国建设厅官方网站网站建设进度说明
  • 网站建设活动海报sem什么意思
  • 什么网站招聘外国人做兼职白山网站设计
  • 网站为什么维护中域名注册服务网站查询
  • 温州做网站的公司有哪些无锡网站建设上海韵茵
  • 个人网站 作品互联网公司
  • 女装高端品牌有哪些郑州百度快照优化
  • 学校网站源码php郑州哪家做网站最好
  • 世预赛韩国出线了吗网站优化软件
  • 网站开发去哪里找程序员网站模块数据同步
  • 网站最下端怎么做淄博网站建设yx718
  • 白银市住房与建设局网站陕建上海公司官网
  • 网站服务内容有哪些自己动手建立个人网站
  • 网站改版seo建议r2网站做生存分析
  • 那个网站攻略做的好重庆网站建设注意事项
  • 网站建设想法美丽寮步网站建设哪家好
  • 编程网站入门seo网络公司
  • 网站建设 英文怎么说青春网页制作素材
  • 这么做3d网站wordpress的用户分
  • 请简述网站建设流程图九牛科技网站开发微信营销
  • 蚌埠大建设及棚户区改造官方网站搜索引擎优化排名
  • 百度网站是什么html5网页设计案例
  • 电商网站开发图书成品网站前台源码