C语言实现二叉树数据结构及插入操作

需积分: 0 0 下载量 118 浏览量 更新于2024-08-26 收藏 5KB MD 举报
在C语言中,本文档介绍了如何实现二叉树的基本操作,主要关注于一个名为`stu_st`的数据结构,它包含学生的ID(int类型)和姓名(char数组,大小为NAMESIZE)。核心功能包括创建新节点、插入节点、中序遍历以及销毁二叉树。 1. **数据结构定义**: - 定义了一个名为`structnode_st`的结构体,用于表示二叉树的节点,包含两个成员:`data`存储一个`structstu_st`类型的元素,表示学生信息;`left`和`right`分别指向左子节点和右子节点,也是`structnode_st`类型的指针。 2. **插入新节点函数** (`treeInsert`): - 函数接受一个指向根节点的指针`*root`和一个`structstu_st`类型的指针`data`作为参数。 - 如果根节点为空,函数首先动态分配一个新的`structnode_st`结构体,并将输入的学生信息复制到新节点的`data`字段。然后设置左右子节点为NULL,并将新节点设置为根节点。 - 如果输入数据的ID小于等于当前节点的ID,递归地在左子树中继续插入;否则,在右子树中进行插入。 3. **中序遍历函数** (`treeMidTraval'): - 这个函数实现了二叉树的中序遍历,即先遍历左子树,然后访问当前节点,最后遍历右子树。遍历过程中,按照ID和姓名打印出节点信息。 4. **销毁二叉树函数** (`treeDestroy'): - 通过递归的方式,先销毁左子树,再销毁右子树。在删除每个节点时,先输出该节点的信息,然后释放其内存空间。当根节点为空时,遍历结束。 这些函数共同构成了一个简单的二叉搜索树(BST)的实现,适合用于存储并按ID排序学生信息。对于C语言初学者来说,这是理解二叉树基本操作的一个良好示例。学习者可以借此练习指针操作、递归算法和动态内存管理等关键概念。