0

我有作业要求删除堆栈中的空元素?但我认为如果我定义结构,堆栈中不可能有一个空元素:

struct element{
  type value;
  element* next;
}

element如果它是最后一个,则仅指向 null。

我非常感谢任何帮助。非常感谢。

4

1 回答 1

3

对于堆栈的元素内容,您不需要特殊的结构或类。你element struct看起来更像是在单向链表中使用的东西。

要从堆栈中删除空值:创建第二个临时stack. Pop来自第stack一个的元素一个接一个,如果它们被null丢弃。如果没有,push他们就换上新的stack. 要保留与开始时相同的 LIFO 排序,您需要从临时堆栈中填充一个新堆栈或原始堆栈。

当您浏览完原始堆栈中的所有元素后,您将获得分配所要求的内容。删除了所有空元素的堆栈。

于 2013-01-27T22:22:47.970 回答