#include <stdio.h> #include <stdlib.h>

// 定义二叉搜索树节点结构体 typedef struct BSTNode { int val; struct BSTNode *left; struct BSTNode *right; } BSTNode;

// 创建一个新的二叉搜索树节点 BSTNode *createNode(int val) { BSTNode *newNode = (BSTNode *)malloc(sizeof(BSTNode)); newNode->val = val; newNode->left = NULL; newNode->right = NULL; return newNode; }

// 插入一个节点到二叉搜索树中 void insertNode(BSTNode **root, int val) { if (*root == NULL) { *root = createNode(val); return; } if (val < (*root)->val) { insertNode(&((*root)->left), val); } else { insertNode(&((*root)->right), val); } }

// 中序遍历二叉搜索树 void inorderTraversal(BSTNode *root) { if (root == NULL) { return; } inorderTraversal(root->left); printf("%d ", root->val); inorderTraversal(root->right); }

// 测试 int main() { BSTNode *root = NULL; insertNode(&root, 5); insertNode(&root, 3); insertNode(&root, 6); insertNode(&root, 2); insertNode(&root, 4); insertNode(&root, 1); inorderTraversal(root); return 0; }

写一个二叉搜索树c语言代码

原文地址: https://www.cveoy.top/t/topic/8pZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录