练习期末考试题,"Data Structures"课
Practice final exam questions, "Data Structures" class
我正在为数据结构课做我的练习期末考试,我有几个问题希望得到帮助:
-
void BST::traverse(Vertex *V) // post order traversal recursively { if (V != NULL) { traverse(V->Left); traverse(V->Right); cout << V->elem << endl; } }
我需要将其更改为深度优先搜索。 我相信我必须在每次递归时重新访问根才能这样做,但我很困惑,因为那样我永远不会离开根。 也许是暂时的根? 不确定!
-
对于我们的链表实现,我必须描述使用复制构造函数的 2 种情况。 我知道它是为函数调用而调用的。 但另一个原因是什么?
-
为什么我们使用大 O 表示法 [例如 O(n^2( 而不是说 2n^2 + 3n + 4(。 我知道我们在这样做时会忽略常量,但是我能给出的答案还有更多吗?
-
时间与空间的复杂性。 对我来说最明显的是合并排序与快速排序,但是如果测试要求更多,您能想到另一个吗? 我们在课堂上讲了这么多,我不敢相信我不能说出更多。
-
如果您只是向其添加搜索代码,它已经是深度优先搜索。
-
您已经有将
BST
作为参数按值传递给函数的情况。您再次复制对象的时间是什么时候?(提示:一个也与功能有关( -
因为当
n
很大时,2n 将比等式中的其他任何东西大得多,所以你只需省略常量和其他所有内容。Big-O 表示法绝对不是为了精确,它只是让你知道随着输入变得非常大,问题的解决方案是如何扩展的。当n
变得足够大时,复杂性是如此之大,以至于其他东西相形见绌,基本上是 2n。 -
你必须更具体地说明这一点。您是否正在寻找两种以速度换取空间的算法?
3 个大 O 表示法只引用主导项。当 n 变大时,这是结果中最重要的部分。
4 考虑气泡排序 - 我曾经不喜欢它,因为它需要很长时间,但只需要空间来容纳更多的项目。
相关文章:
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 'string.assign(string.data(), 5)' 是明确定义的还是 UB?
- 收到错误"invalid use of non-static data member 'stu::n' "
- C++ 初始化 .data 部分中的变量
- 模式"allocate memory or use existing data"
- boost::asio data owning `ConstBufferSequence`
- Python to C++ Data structure API
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- protobuf C++ SQLite handle blob data
- 错误:字段'dateOfBirth'的类型不完整'Poco::Data::Date'
- 为什么构造函数 Message(const T&data) 与 Message(T&& data) 冲突,当 T = int&时?
- "thread-safe data"与"thread-safe code/functions"的区别
- 如何找到目标文件 *.o 的 ram rom 使用情况(.bss .text .rodata .data)?
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- *(int*)&data[18]在这段代码中实际上做了什么?
- 出现这种错误的原因是什么"invalid use of non-static data member "
- 构造中错误:未在此范围中声明"data"
- 我可以在初始化之前使用 std::array 成员变量中的 data() 指针吗?发出警告
- 练习期末考试题,"Data Structures"课