Advertisement

数据结构——二叉排序树的核心操作(BST)

阅读量:

对二叉排序树的查找、插入、删除以及构建算法的核心思想与程序实现进行了简要实现。在执行删除操作时,需特别注意以下三种情形:

  1. 当待删除节点不存在左子树时,可直接将其右子树提升至该位置;

  2. 若待删除节点的左子树不存在右子树,则可将左子树直接提升至该位置;

  3. 对于其他情况,则需要找到左子树中最大的叶节点并将其提升至该位置。

以下代码参考自《挑战程序设计》:

代码:

复制代码
 #include<bits/stdc++.h>

    
 #define N 109
    
 using namespace std;
    
  
    
 struct node
    
 {
    
     int data;
    
     struct node *lch, *rch;
    
 };
    
  
    
  
    
 void menu()
    
 {
    
     cout << endl;
    
     printf("\t\t\t1.建立二叉排序树\n");
    
     printf("\t\t\t2.插入元素x\n");
    
     printf("\t\t\t3.删除元素x\n");
    
     printf("\t\t\t4.查找元素x\n");
    
     printf(

全部评论 (0)

还没有任何评论哟~