判断一个节点是不是叶子
补全 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 编译。)