第三步接上层序
用队列写层序遍历,输出层序序列的第 4 个。 (本题用 g++ -std=c++17 -O0 编译。)
第四步再写一棵前缀树
把 Trie 的 trie_insert 和 trie_search 写出来,插入 cat / car / card / dog,然后输出 trie_search("card") 和 trie_search("
交付建树四种遍历和 Trie
这是这条路线的最终作品。把树建出来、四种遍历都写上、再写一棵 Trie,最后把整棵树释放干净,一次验完五条:节点总数是 6、叶子是 3;前序第一个是「总部」、后序最后一个也是「总部」;中序第一个是「北京」;层序第 4 个是「北京」、一共 3
递归太深会发生什么
一棵退化成一条链的树有十万层,用递归去遍历,最可能【0】。
补写层序遍历
场景:实验机上 ~/work/tree/level.cpp 读入一棵二叉树(格式见文件开头的注释),要按层序输出所有节点的值,但 level_order 还是空的。 任务:补全 level_order。make 编译,./level <
十万层的树求深度
场景:~/work/tree/depth.cpp 读入一棵树(每个节点给出父节点),用递归求最大深度。普通的树没问题,可一条十万层的「链」一跑就崩溃——实验机的栈只有 1 MB(check 用 ulimit -s 1024 运行你的程序)。
实现前缀树的插入和计数
场景:~/work/tree/trie.cpp 按指令操作一棵前缀树:add 单词 插入一个词,cnt 前缀 输出以它开头的词有几个(重复插入的词按次数算)。insert 和 count_prefix 还没写。 任务:补全这两个函数(节点里
修好中序遍历
场景:~/work/tree/inorder.cpp 读入一棵二叉树,按中序输出。可它输出的顺序不对。 任务:修好 inorder。make 编译后用 sample.txt 自测。check 会用随机树对拍。 可操作范围:只在分给你的这台实
析构漏掉的子树
场景:~/work/tree/free.cpp 建一棵树、输出节点总数,最后释放整棵树。输出是对的,可 Makefile 带了内存检查,程序一结束就报内存泄漏。 任务:修好 free_tree,让整棵树一个不漏地释放。make 编译后运行不
二叉搜索树的规矩是什么
二叉搜索树之所以叫「搜索」树,是因为它规定【0】。