美文网首页
二叉查找树的查找和插入

二叉查找树的查找和插入

作者: 沧州宁少 | 来源:发表于2017-09-17 14:31 被阅读0次

常用的查找算法

倒排索引

  • 次关键码
  • 记录号表

二叉排序树,又称为二叉查找数,它或者是一棵空树,或者是具有下列性质的二叉树。

  • 若它的左子树不空,则左子树上所有节点的值均小于它的根结构的值
  • 若它的右子树为空,则右子树上所有节点的值均大于它的根节点的值

二叉查找树的插入

  • 定义

typedef struct BiTNode{

int data;
struct BiTNode*lchild,*rchild;
}BiTNode,*BiTree;  
  • 插入使用递归的方式找到最合适的地方

typedef bool Status; // 1.T为二叉链表 2.key为要查找的关键字 3.f指向T的双亲。当T为根节点的时候,f的初值是NULL 4.p 为查找成功后可以查找节点的位置 Status searchBST(BiTree T, int key,BiTree f,BiTree*p){

if (!T) {   //如果查找不成功
    *p = f;
    return false;
}else if (key == T->data){
    *p = T;
    return true;
}else if (key< T->data){
    return  searchBST(T->lchild, key, T, p);
}else if (key> T->data){
    return  searchBST(T->rchild, key, T, p);
}
return  true;}
  • 二叉查找树 基于查找的基础上 进行插入

//二叉树的插入操作 1. 先去查找有没有 2.没有的话,则先创建一个节点,分别为节点赋值。然后判断插入节点和当前节点的关系。 Status insertBST(BiTree *T,int key){

// f为T的双亲节点。p为当前节点
BiTree s ,p ;
if (!searchBST(*T, key, NULL, &p)) { 
    s = (BiTree)malloc(sizeof(BiTNode));
    s->data = key;
    s->lchild = s->rchild = NULL;
    if (!p) {
        *T  =s ;
    }else if (key<p->data){
        p->lchild = s;
    }else if (key>p->data){
        p->rchild = s;
        
    }
    return  true;
}
return  false;}

相关文章

  • 二叉查找树

    1)二叉查找树是什么?2)二叉查找树的插入、删除、查找?3)Go代码实现 一、二叉查找树是什么?二叉查找树(BST...

  • 11-二叉查找树

    二叉查找树 1.什么是二叉查找树? 二叉查找树是一种支持数据动态的插入,删除,查找的数据结构。 2.二叉查找树的设...

  • 二叉查找树

    基本操作 1. 二叉查找树元素的插入 2. 二叉查找树的查找操作 题目 TODO

  • 7天练|Day5:二叉树和堆

    关于二叉树和堆的7个必知必会的代码实现二叉树实现一个二叉查找树,并且支持插入、删除、查找操作实现查找二叉查找树中某...

  • 二叉树 堆 2019-04-17

    二叉树 实现一个二叉查找树,并且支持插入、删除、查找操作 实现查找二叉查找树中某个节点的后继、前驱节点 实现二叉树...

  • 数据结构与算法——红黑树

    前面我们提到了二叉查找树,支持快速的查找、插入和删除操作。中序遍历二叉查找树,可以输出有序的数据序列,非常高效。 ...

  • 二叉树(下)

    二叉树中有种特殊的树是二叉查找树,其最大的特点就是,支持动态的快速插入、删除、查找操作。 其实除了二叉查找树外,散...

  • 伸展树

    概念 伸展树是一种二叉查找树,它能在O(logn)内完成插入、查找和删除操作。伸展树是一种自调整形式的二叉查找树,...

  • 红黑树分析笔记

    阅读本文的前提 1、知道二叉查找树的概念,插入、删除和查找操作;2、知道二叉树的左旋和右旋。3、了解二叉平衡树(A...

  • 85. 在二叉查找树中插入节点

    85. 在二叉查找树中插入节点 描述 笔记 数据 评测 给定一棵二叉查找树和一个新的树节点,将节点插入到树中。 你...

网友评论

      本文标题:二叉查找树的查找和插入

      本文链接:https://www.haomeiwen.com/subject/chapsxtx.html