判断一个节点是不是叶子

补全 is_leaf:左右都为空就返回 true。拿「北京」这个节点来判,输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

释放整棵树用哪种顺序

第 1 步:要把整棵树 delete 干净 第 2 步:先放左下角的 4 第 3 步:再放 5 第 4 步:2 的孩子都没了,放 2 第 5 步:右边:先放 6 第 6 步:再放 3 第 7 步:最后才放最上面的 1 第 8 步:一个不漏,

开始练习 →

只 delete 根会怎样

整棵树用完了,只写一句 delete root;,结果是【0】。

开始练习 →

析构函数里释放孩子

如果 ~TNode() 里写了 delete left; delete right;,那么 delete root; 会【0】。

开始练习 →

后序释放了几个

运行下面这段程序: #include <iostream> #include <queue> #include <string> #include <vector> using namespa

开始练习 →

后序释放的先后顺序

运行下面这段程序: #include <iostream> #include <queue> #include <string> #include <vector> using namespa

开始练习 →

补全后序释放

补全 free_tree:先释放左右子树,再 delete 自己,每释放一个 alive 减一。补全后输出 alive。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

补全递归析构函数

补全 ~DNode():析构时顺手 delete 左右孩子。delete root; 之后输出还剩几个没归还。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

孩子数组表示数一数

一个节点可以有很多孩子时,常用 vector<KNode*> 存孩子。补全 count_nodes:递归数出总节点数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

释放孩子数组表示的树

补全 free_all:先释放每个孩子那棵子树,再 delete 自己。补全后输出还剩几个没归还。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →