首页 > 其他分享 >Find min and max element in bst using iteration【1月23日学习笔记】

Find min and max element in bst using iteration【1月23日学习笔记】

时间:2024-01-23 17:44:22浏览次数:32  
标签:Node insert run min bst max travptr NULL data

点击查看代码
#include<iostream>
using namespace std;

struct Node {
    int data;
    Node *left, *right;
};


Node* newNode(int x)
{
    Node* temp = new Node;
    temp->data = x;
    temp->left = temp->right = NULL;

    return temp;
}

void insert(Node*& travptr, int data) {//Node*& travptr 表示 travptr 是一个引用,引用的是一个指向 Node 类型的指针

    if (travptr == NULL)
    {
        travptr = newNode(data);
        return;
    }
    (data > travptr->data) ? insert(travptr->right, data) : insert(travptr->left, data);

}

int findmin(Node* run) {//副本
    if (run == NULL) {
        cout << "empty\n";
        return -1;//必须返回值
    }
    while (run->left != NULL) {//关注结束条件即可
        run = run->left;
    }//类似链表
    return run->data;
}//时间复杂度:O(logn)in best case(balanced bst)


int findmax(Node* run) {
    if (run == NULL) {
        cout << "empty\n";
        return -1;//必须返回值
    }
    while (run->right!= NULL) {//关注结束条件即可
        run = run->right;
    }
    return run->data;
}//时间复杂度:O(logn)in best case(balanced bst)

int main()
{
    Node* root = NULL;

    insert(root, 1);//引用传参
    insert(root, 2);
    insert(root, 3);
    insert(root, 4);
    insert(root, 5);
    cout << findmin(root) << endl;;
    cout << findmax(root) << endl;;
    return 0;
}

标签:Node,insert,run,min,bst,max,travptr,NULL,data
From: https://www.cnblogs.com/whvivy/p/17983003

相关文章

  • HttpRetryException: cannot retry due to redirection, in streaming mode
     failcannotretryduetoredirection,instreamingmodeexecutingPOSThttps://vsp.allinpay.com/apiweb/gateway/payfeign.RetryableException:cannotretryduetoredirection,instreamingmodeexecutingPOSThttps://vsp.allinpay.com/apiweb/gateway/pay......
  • 别再混淆事件源(Event Sourcing)和消息流(Message Streaming)了!
    0前言Kafka不适合事件溯源,Kafka适合消息流。这两种事物需要不同存储机制。事件溯源(EventSourcing),需DB充当事件日志,为事件溯源存储的事件必须以某种方式编写,以便将来的读取能够快速组装属于单个聚合的较小(更小的)事件流最初发射它们的。这需要随机访问索引消息流(MessageS......
  • 如何查看华为的大模型(AI模型),华为官方的mindspore下的大模型???
    由于华为官方的mindspore网站的设计比较反人性话,操作起来十分的复杂,因此如果想要在华为的官方网站上查找这个华为的官方大模型还是比较困难的,为此直接给出链接地址。PS.要注意,华为的AI官方网站经常性的进行修改,所以这个链接只能保证一段时间内可以使用,如果未来网站升级修改,就......
  • gin-vue-admin部署
    前言gin-vue-admin是什么gin-vue-admin是一个基于Gin和Vue.js的全栈前后端分离框架。它提供了一套完整的开发工具和模板,用于快速搭建企业级Web应用程序。gin-vue-admin后端使用Go语言和Gin框架实现,前端使用Vue.js和ElementUI组件库,通过RESTfulAPI进行通......
  • npm ERR! code 1 npm ERR! path E:\20231213\vue-element-admin\node_modules\nod
    执行npminstall报错,根据下面报错信息可知,是由于nodejs和node-sass版本不一致造成的,也就是当前项目比较旧,而我安装的nodejs比较新。PSE:\20231213\vue-element-admin>PSE:\20231213\vue-element-admin>PSE:\20231213\vue-element-admin>PSE:\20231213\vue-element-adm......
  • 2024最新版Xmind for Windows下载安装教程
    软件介绍:LifetimeXMindforWindows:一款全新的思维导图软件如果你是一个喜欢用思维导图来组织思路、管理项目、记录灵感的人,那么你一定不会陌生XMind这个品牌。XMind是一款在思维导图领域表现出色的软件,它拥有遍布全球的大量用户,不仅为用户提供创建思维导图的功能,而且还提供开源。......
  • Toyota Programming Contest 2024#1(AtCoder Beginner Contest 337)
    ToyotaProgrammingContest2024#1(AtCoderBeginnerContest337)A-Scoreboard代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingi128=__int128_t;void......
  • mingw下opencl开发,clFFT的使用
    国产嵌入式GPGPU-soc的开发多使用opencl,开发时需要在Windows下搭建GPU计算的测试框架,用以对算法实现进行测试。在Windows平台下利用方便的开发工具对算法进行基本实现和调试,然后就能方便在soc上进行调试。开发环境:两台笔记本:CPU均是i9-12900H 2.50GHz,带有核心显卡IrisXeGP......
  • m基于FPGA的Hamming汉明编译码verilog实现,包含testbench测试文件,不使用IP核
    1.算法仿真效果本系统进行了Vivado2019.2平台的开发,测试结果如下:2.算法涉及理论知识概要在现代数字通信和存储系统中,错误检测和纠正(ErrorDetectionandCorrection,EDC)机制是至关重要的。Hamming码,以其发明者RichardHamming命名,是一种线性错误检测和纠正码,广泛应用于这些系......
  • 2024最新版Xmind for MAC下载安装教程
    软件介绍XMindforMac24.0内置激活版是一款专业的思维导图软件,本版本是永久激活版,可以帮助用户更好地组织思维、管理信息、规划项目和解决问题。它提供了丰富的模板和工具,使用户能够创建美观、清晰、易于理解的思维导图。2024XmindforMac下载链接:链接:https://pan.xunlei.com/s......