【王道数据结构】【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;
}
相关推荐
东皇太星7 分钟前
机器学习概念,算法原理及应用
算法·机器学习·梯度下降法
.格子衫.10 分钟前
021数据结构之并查集——算法备赛
数据结构·算法
姝孟10 分钟前
C++学习——类与对象详细知识点总结
c++·笔记·学习
im_AMBER19 分钟前
Leetcode 35
笔记·学习·算法·leetcode
码农多耕地呗20 分钟前
力扣101.对称二叉树(java)
算法·leetcode
小龙报40 分钟前
《算法通关指南之C++编程篇(5)----- 条件判断与循环(下)》
c语言·开发语言·c++·算法·visualstudio·学习方法·visual studio
郝学胜-神的一滴42 分钟前
C++ STL(标准模板库)深度解析:从基础到实践
linux·服务器·开发语言·c++·算法
Fortunate Chen1 小时前
初识C语言12. 结构体(自定义类型的核心工具)
c语言·开发语言·笔记
code monkey.1 小时前
【探寻C++之旅】C++11 深度解析:重塑现代 C++ 的关键特性
c++·c++11·语法·右值引用
刚入坑的新人编程1 小时前
算法训练.17
开发语言·数据结构·c++·算法