实现增删查并对拍
场景:~/work/bst/ops.cpp 按指令操作一棵 BST:i x 插入、d x 删除、q x 查询(输出 yes/no),最后输出中序。insert、erase、contains 三个函数还没写。 任务:补全三个函数,删除要正确处
修好双孩子删除
场景:~/work/bst/succ.cpp 删除节点后输出中序。删叶子和单孩子都对,可删掉有两个孩子的节点后,有时会丢掉一串节点。 任务:修好 erase 里双孩子那一支。make 编译(带内存检查)后用 sample.txt 自测。 可
删掉的节点要还回去
场景:~/work/bst/leak.cpp 按指令删节点后输出中序。输出是对的,可 Makefile 带了内存检查,程序一结束就报内存泄漏。 任务:修好 erase:摘下来的节点要 delete,而且 delete 之后不能再读它。改完
大顶堆的规矩是什么
大顶堆要求【0】。
完全二叉树是什么意思
第 1 步:上面是树,下面是数组 第 2 步:24 压得住 23 和 15 第 3 步:23 压得住 13 和 17 第 4 步:13 和 17 是兄弟:不比 第 5 步:最大的自然在顶上 24 23 15 13 17 24 23 15 1
小顶堆的规矩
和大顶堆相反,小顶堆要求【0】。
判断数组是不是堆查什么
要验证一个数组满不满足堆序,做法是【0】。
堆最擅长的一件事
堆最擅长的是【0】。
堆顶在数组的哪个位置
堆用一个数组从上到下、从左到右装起来。运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <u
堆为什么能用数组装
第 1 步:树按层从左到右装进数组 第 2 步:看下标 1:23 第 3 步:孩子在 2×1+1 和 2×1+2 第 4 步:反过来:(4-1)/2 = 1 24 23 15 13 17 24 23 15 13 17 堆能直接用一个数组装下