我正在为一门数据结构课程做练习期末考试,我有几个问题希望得到帮助:
void BST::traverse(Vertex *V) // post order traversal recursively { if (V != NULL) { traverse(V->Left); traverse(V->Right); cout << V->elem << endl; } }
我需要将其更改为深度优先搜索。我相信我必须在每次递归时重新访问根,但我很困惑,因为那时我永远不会离开根。也许是一个临时的根?没有把握!
对于我们的链表实现,我必须描述使用我们的复制构造函数的两种情况。我知道它是为函数调用而调用的。但是还有什么原因呢?
为什么我们使用大 O 表示法 [例如 O(n^2) 而不是说 2n^2 + 3n + 4)。我知道这样做时我们会忽略常量,但我还能给出更多答案吗?
时间与空间的复杂性。对我来说最明显的是合并排序与快速排序,但是如果测试要求更多,你能想到另一个吗?我们在课堂上经历了这么多,我不敢相信我不能说出更多的名字。