【王道数据结构】【chapter5树与二叉树】【P158t7】

假设二叉树采用二叉链表存储结构存储,试设计一个算法,计算一颗给定二叉树的所有双分支节点的个数

cpp 复制代码
#include <iostream>
#include <stack>
typedef struct treenode{
    char data;
    struct treenode *left;
    struct treenode *right;
}treenode,*ptreenode;

ptreenode buytreenode(char x)
{
    ptreenode n=(ptreenode) malloc(sizeof (treenode));
    n->data=x;
    n->left= nullptr,n->right= nullptr;
    return n;
}
ptreenode build_tree()
{
    ptreenode root= buytreenode('A');
    root->left= buytreenode('B');
    root->right= buytreenode('C');
    root->left->left= buytreenode('D');
    root->left->right= buytreenode('E');

    root->right->left= buytreenode('F');
    root->right->right= buytreenode('G');
    return root;
}

int count(ptreenode root)
{
    if(root== nullptr) return 0;
    if(root->left&&root->right) return count(root->left)+ count(root->right)+1;
    else return count(root->left)+ count(root->right);
}
int main() {
    ptreenode root=build_tree();
    printf("%3d\n", count(root));
    return 0;
}
相关推荐
kaiaaaa13 分钟前
算法训练第十一天
数据结构·算法
?!71414 分钟前
算法打卡第18天
c++·算法
springfe010127 分钟前
构建大顶堆
前端·算法
zh_xuan29 分钟前
c++ std::pair
开发语言·c++
CodeWithMe1 小时前
【C/C++】EBO空基类优化介绍
开发语言·c++
-qOVOp-1 小时前
408第一季 - 数据结构 - 图II
数据结构
凌辰揽月1 小时前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
-qOVOp-1 小时前
408第一季 - 数据结构 - 树与二叉树III
数据结构
lifallen1 小时前
深入浅出 Arrays.sort(DualPivotQuicksort):如何结合快排、归并、堆排序和插入排序
java·开发语言·数据结构·算法·排序算法
jingfeng5141 小时前
数据结构排序
数据结构·算法·排序算法