• 二叉排序树


    题目截图:

    思路:

       参照我的另一篇博客

    代码如下:

     1 /*
     2     二叉排序树 
     3 */
     4 
     5 #include <stdio.h>
     6 #include <string.h>
     7 #include <math.h>
     8 #include <stdlib.h>
     9 #include <time.h>
    10 #include <stdbool.h>
    11 
    12 // 二叉树结构体 
    13 typedef struct _node {
    14     int data;                // 数据域 
    15     struct _node* left;        // 左子树 
    16     struct _node* right;    // 右子树 
    17 } node; 
    18 
    19 // 在以 root 为根结点中插入结点 x,pre 储存父结点 
    20 void insert(node** root, node* pre, int x) {
    21     if((*root) == NULL) {    // 若根结点为空,表示已经找到插入位置 
    22         // 新建结点 
    23         node* newNode = (node*)malloc(sizeof(node));
    24         newNode->data = x;
    25         newNode->left = newNode->right = NULL;
    26         (*root) = newNode;    // 插入结点 
    27         if(pre == NULL) {    // 输出父结点 
    28             printf("-1"); 
    29         } else {
    30             printf("%d", pre->data);
    31         }
    32         return;
    33     }
    34     if(x == (*root)->data) {    // 树中已经有该结点 
    35         return;
    36     } else if(x < (*root)->data) {    // 值小于根结点的值,应插到左子树 
    37         insert(&(*root)->left, *root, x);
    38     } else {                        // 值大于根结点的值,应插到右子树 
    39         insert(&(*root)->right, *root, x);
    40     }
    41 }
    42 
    43 int main() {
    44     int N, i, x;
    45     scanf("%d", &N);            // 结点个数 
    46     node* root = NULL;
    47     for(i=0; i<N; ++i) {
    48         scanf("%d", &x);
    49         insert(&root, root, x);    // 插入结点 
    50         if(i != N-1) {            // 格式化输出 
    51             printf("
    ");
    52         }
    53     }
    54 
    55     return 0;
    56 }
  • 相关阅读:
    GET与POST类型接口
    sql查询优化 索引优化
    临时表操作
    sqlserver group by 分组使用详解
    js调用正则表达式
    后台对象转JSON字符串传到前台,前台JSON字符串转对象绑定标签赋值
    string 数组转 int 数组
    巧用XML格式数据传入存储过程转成表数据格式
    存储过程规范写法
    WebApi
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/HustTest04.html
Copyright © 2020-2023  润新知