c - 在 C 中实现堆栈数组

标签 c arrays data-structures stack

实现定义了栈的栈数组:

typedef struct StackNode {

   int data;

   StackNode* next;

} StackNode;

每个数组元素指向一个栈,每个栈初始化为一个空栈。 当您开始添加元素时,它会开始将它们添加到 Stacks[0]; 中的堆栈中 例如,如果您在标准输入中输入 -2,然后输入 4,下一个条目将转到 Stacks[4];

例如:

5 10 -2 3 9 7 89 -1
will result in :
Stacks[0] -> 10 -> 5
Stacks[1]
Stacks[2]
Stacks[3] -> 89 -> 7 -> 9

-1 将停止运行代码。

我在实现堆栈数组时遇到问题,因此我们将不胜感激 :)

最佳答案

int t = 0, index = 0;
while(t != -1)
{
  scanf("%d", &t);
  if(t == -2)
  {
    scanf("%d", &t);
    index = t;
    continue;
  }
  if(t >= 0)
    push(stacks[index], t);
}

关于c - 在 C 中实现堆栈数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1720911/

相关文章:

c - 如何将整数值分配给 char 数据类型?

c - libnet.h 没有那个文件或目录

c - 从 C 读取 Lua 表

python - 如何在Python中将乘法表的结果存储在列表中?

JavaScript 数组切片与删除

c - 使用 Shell 脚本将数据发送到正在运行的进程

c - 在数组中设置随机数

mysql - 将 mysql 二进制文件转换为 postgresql bytea

c - 代表一个迷宫

c++ - 删除完整链表时的段错误