【发布时间】:2011-08-26 04:31:51
【问题描述】:
有谁知道我在哪里可以获得很多涉及堆栈使用的具有挑战性的编程问题?我想用超难的问题挑战自己。
【问题讨论】:
-
为什么不购买/借用 langsam/tennenbaum 的“使用 C 和 C++ 的数据结构”?你会得到足够的问题一周,只是为了堆栈。 :)
标签: algorithm data-structures stack
有谁知道我在哪里可以获得很多涉及堆栈使用的具有挑战性的编程问题?我想用超难的问题挑战自己。
【问题讨论】:
标签: algorithm data-structures stack
我最喜欢的
采用任何该死的递归程序,它是直觉递归的,并尝试迭代地实现它。每个递归都有一个迭代解决方案。 这应该会让你忙一阵子。 :)
顺便说一句, 为什么不购买/借用 langsam/tennenbaum 的“使用 C 和 C++ 的数据结构”?
你会得到一个星期足够的问题。 :)
【讨论】:
Google 搜索堆栈数据结构问题会发现很多有趣的东西。以下是一些有趣的(根据我的判断,从易到难):
检查文本中的平衡括号、大括号和其他成对的分隔符。
编写一个后缀计算器。 (所以1 3 2 4 + * - 应该计算 1 - (3 * (2+4))。)
使用堆栈解决“N 个皇后”问题。 (将 N 个皇后放在 N x N 棋盘上,这样没有两个皇后在同一行、同一列或同一对角线上。)
【讨论】:
破解编码面试,第四版:150个编程面试问题和解决方案: http://www.amazon.com/Cracking-Coding-Interview-Fourth-Programming/dp/145157827X
第 3 章专门讨论堆栈和队列问题。这是一个示例问题:
你会如何设计一个栈,除了 push 和 pop,还有一个函数 min 可以返回最小元素? push、pop 和 min 都应该在 O(1) 时间内运行。
【讨论】:
您可以学习基于堆栈的语言,如 Forth,或堆栈虚拟机,如 MS 的 CIL VM。任何一个都将迫使您重新考虑如何实现您在其中编写的任何内容以利用堆栈。
【讨论】:
去图书馆看看关于数据结构的教科书。它们都应该放在一起,这样您就可以随时找到您当前教科书的索书号,其他教科书就在附近。
我希望大多数人会有专门关于堆栈的章节,但会有章节结束的问题。会有很多重叠,但你应该能够很好地选择不同难度的问题,以及对标准问题的一系列不同解释。
【讨论】: