【问题标题】:Insert and remove an element of a stack ADT using recursion使用递归插入和删除堆栈 ADT 的元素
【发布时间】:2014-11-09 10:49:57
【问题描述】:

我想使用递归到堆栈 ADT 编写两个函数:

  1. 在堆栈的第 i 个位置插入一个元素(使用递归)。
  2. 删除堆栈第 i 个位置的元素(使用递归)。

他们都需要两个只使用 pop 和/或 push 而不使用循环(while,for)。换句话说,堆栈将“模拟”数组的插入和删除操作。

【问题讨论】:

  • 只有没有递归的伪代码。
  • @Giovani-堆栈的第 i 个位置应该从顶部还是底部?表示 frm 最后一个元素的计数应该从堆栈的第一个元素开始计算???
  • 我们是否提前知道堆栈的大小,因为我觉得没有大小我们无法做到这一点!
  • 是的,大小是10。

标签: c recursion stack adt


【解决方案1】:
  1. 如果 i==0(假设这意味着顶部),它是微不足道的。否则,唯一有意义的做法就是弹出最高值;完成后,您还需要做什么才能完成任务?

  2. 与 (1) 类似的推理。

【讨论】:

  • 不完整就好。这个问题似乎是家庭作业或其他类型的学习练习,如果我们在盘子上给他完整的答案,我们对 OP 的服务很糟糕。 Maieutics 为胜利而战!
猜你喜欢
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多