【王道数据结构】【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;
}
相关推荐
mjhcsp6 分钟前
P14977 [USACO26JAN1] Lineup Queries S(题解)
数据结构·c++·算法
HalvmånEver6 分钟前
Linux:信号保存下(信号二)
linux·运维·服务器·c++·学习·信号
夜勤月6 分钟前
拒绝线程死锁与调度延迟:深度实战 C++ 内存模型与无锁队列,构建高并发系统级中枢
java·c++·spring
狐579 分钟前
2026-01-22-牛客每日一题-二进制不同位数
算法·牛客
十八岁讨厌编程11 分钟前
【算法训练营 · 二刷总结篇】链表、哈希表部分
算法·链表·散列表
西瓜泡泡奶12 分钟前
代码随想录算法Day13|(二叉树part3)110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数
数据结构·算法·二叉树·平衡二叉树·完全二叉树·二叉树路径·左叶子之和
Remember_99312 分钟前
【LeetCode精选算法】前缀和专题一
java·开发语言·数据结构·算法·leetcode·eclipse
孞㐑¥12 分钟前
算法—双指针
开发语言·c++·经验分享·笔记·算法
承渊政道13 分钟前
C++学习之旅【C++List类介绍—入门指南与核心概念解析】
c语言·开发语言·c++·学习·链表·list·visual studio
带土114 分钟前
11. C++封装
开发语言·c++