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

数据结构 编程1年新手视角的平衡二叉树AVL从C与C++实现③

对应地,我们可以将insert函数中省略的操作补上

if(getBalance(node)==2){

        if(getBalance(node->left)==1){

                node=rightRotate(node);  //对应LL型

        }

        else if(getBalance(node->left)==-1{

                node->left = leftRotate(node->left);  //对应LR型

                node=rightRotate(node);

        }

}

else if(getBalance(node)==-2){

        if(getBalance(node->right)==-1){

                node = leftRotate(node);  //对应RR型

        }

        else if(getBalance(node->right)==1){

                node->right=rightRotate(node->right);  //对应RL型

                node=leftRotate(node);

        }

}

最后,我们使用create函数将n个数据的数组a[]传入AVL中,

node*create(int a[], int n){

        node*root = NULL;

        for(int i = 0; i<n; i++){

                insert(root, a[i]);

        }

        return root;

}

http://www.lryc.cn/news/222242.html

相关文章:

  • 数据可视化PCA与t-SNE
  • Kubernetes rancher、prometheus、ELK的安装
  • 为什么我们要努力的学习编程?初学编程从哪里开始学起?
  • ffmpeg 从内存中读取数据(或将数据输出到内存)
  • Flink(一)【WordCount 快速入门】
  • 【Redis】hash数据类型-常用命令
  • 【大数据】Apache NiFi 数据同步流程实践
  • git怎么使用 拉取代码
  • Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出
  • 数据结构-双向链表
  • CV计算机视觉每日开源代码Paper with code速览-2023.11.6
  • GB28181学习(十五)——流传输方式
  • 【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库
  • Vue 3 中,watch 和 watchEffect 的区别
  • 鲜花展示服务预约小程序的效果如何
  • Linux下多个盘符乱的问题处理
  • uniapp小程序使用web-view组件页面分享后,点击没有home小房子解决办法
  • SLAM_语义SLAM相关论文
  • 【技巧】并发读取Mysql数据保证读取到的数据不重复
  • Lavarel异步队列的使用
  • JVM知识分享(PPT在资源里)
  • 整合Salesforce Org需要避免的3大风险
  • viple进阶3:打印不同形状的三角形
  • pytest+yaml实现接口自动化框架
  • 编译器使用优化后出现的busfault
  • rebase current onto selected作用
  • 深度学习入门
  • 嵌入式图像处理机器视觉库YMCV使用
  • vscode设置pycharm中的项目路径和debug方法
  • 10-27 maven概念