首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【数据结构】C语言实现二叉树的基本操作——二叉树的层次遍历、求深度、求结点数……

    ; //BTN——二叉树的结点类型 //BTL——二叉链表的类型 对于二叉树的层次遍历,这里我们主要介绍的是第二种思路——通过队列实现二叉树的层序遍历。...现在我们也就完成了层序遍历的算法实现,完整代码如下所示: //二叉树的层序遍历 void LevelOrder(BTL T) { assert(T); LQ Q;//创建链队列 InitQueue...3.1.2 分治思想——递归 //二叉树的结点总数——递归(分治) int BTSize2(BTL T) { if (!...3.2.1 层序遍历 //求第K层的结点数——层序遍历 int LevelKSize(BTL T, int k) { if (!...要求一棵二叉树的叶结点数量,我们可以将其拆分成求其左右子树中的叶结点数量,对应代码如下所示: //叶结点数——递归 int LeafSize2(BTL T) { if (!

    96610

    【数据结构】C语言实现二叉树

    typedef struct BiTreeNode { ElemType data;//数据域 struct BiTreeNode* lchild, * rchild;//指针域 }BTN, * BTL...; //BTN——二叉树结点类型 //BTL——二叉树类型 经过前面内容的介绍,二叉链表相信大家都是比较熟悉的了,这里我就不再展开赘述; 二、二叉树的初始化 当我们对二叉树进行初始化时,实际上就是将其初始化为一棵空树...在今天的演示中,我会以不带头结点的方式对其进行初始化,代码如下所示: //二叉树的初始化 void BTInit(BTL* T) { assert(T); *T = NULL; //BTL为一级指针类型...由于我们在实现时创建的是一个指向二叉链表的头指针,而我们在初始化之后需要能够修改指针的值,这时就需要通过取地址传参,对应的测试代码如下所示: //二叉树基本操作的测试 void test1() { BTL...代码如下所示: //二叉树的创建——创建BST void CreatBST(BTL* T, ElemType x) { assert(T); BTN* p = (BTN*)calloc(1, sizeof

    69710
    领券