小编Ran*_*Ran的帖子

在gdb(MinGW)中输入重定向

我正在尝试让gdb运行带有输入重定向到stdin的程序.例如,没有gdb我会运行这样的程序:

prog < input.txt
Run Code Online (Sandbox Code Playgroud)

现在在gdb中,通常的做法是run < input.txt.但是,它对我不起作用,当这样做时,没有任何东西被重定向到stdin.

我正在使用Windows与MinGW.可能是什么问题呢?

gdb mingw

20
推荐指数
2
解决办法
5254
查看次数

如何将递归函数转换为使用堆栈?

假设我有一棵树使用深度优先搜索遍历,而我遍历算法,它看起来是这样的:

algorithm search(NODE):
  doSomethingWith(NODE)
  for each node CHILD connected to NODE:
    search(CHILD)
Run Code Online (Sandbox Code Playgroud)

现在,在许多语言中,递归的最大深度,例如,如果递归深度超过某个限制,则过程将因堆栈溢出而崩溃.

如何在没有递归的情况下实现此函数,而是使用堆栈?在许多情况下,有很多局部变量 ; 它们可以存放在哪里?

algorithm recursion stack

11
推荐指数
2
解决办法
4360
查看次数

找到用彩色矩形覆盖平面的最佳方法的算法

假设我打开MS Paint,绘制一堆实心矩形,将其保存为png,并将其提供给您:

替代文字

现在你必须找出我是如何绘制这些矩形的.对于此图像,您的算法将生成如下指令:

  1. 绘制绿色矩形(填满整个空间)
  2. 画出粉红色的矩形
  3. 绘制黄色矩形
  4. 绘制蓝色矩形

或者换句话说,给定一个图像,我想使用尽可能少的矩形命令来生成它.矩形命令根据其位置,长度,宽度和颜色绘制实心矩形.我该如何处理这个问题?

该算法应足够稳健,不仅可以处理通过放置矩形绘制的图像,还可以处理像照片一样的复杂图像.

algorithm

8
推荐指数
1
解决办法
573
查看次数

带堆栈的斐波那契递归

我已经问过这个问题了,但我仍然感到困惑。我想将递归函数转换为没有递归的基于堆栈的函数。以斐波那契函数为例:

algorithm Fibonacci(x):
  i = 0
  i += Fibonacci(x-1)
  i += Fibonacci(x-2)
  return i
Run Code Online (Sandbox Code Playgroud)

(是的,我知道我没有提出基本情况,斐波那契的递归确实效率低下)

这将如何使用显式堆栈来实现?例如,如果我将堆栈作为while循环,则必须跳出循环才能评估第一次递归,并且无法在第一次递归后返回该行并继续进行第二次递归.

algorithm

5
推荐指数
1
解决办法
9836
查看次数

标签 统计

algorithm ×3

gdb ×1

mingw ×1

recursion ×1

stack ×1