gpt4 book ai didi

c - 为什么我们将栈顶初始化为-1?

转载 作者:太空宇宙 更新时间:2023-11-04 05:23:19 25 4
gpt4 key购买 nike

为什么我必须将其中一个堆栈初始化为 -1? top1 指向哪里?

int ar[SIZE];
int top1 = -1;
int top2 = SIZE;

void push_stack1 (int data)
{
if (top1 < top2 - 1)
{
ar[++top1] = data;
}
else
{
printf ("Stack Full! Cannot Push\n");
}
}

最佳答案

区别在于是让top1指向最后使用的元素还是第一个空闲元素。

使用 -1 可以让它指向最后使用的元素。

使用 0 可以让它指向第一个空闲元素。

前自增/自减和后自增/自减的使用也存在对称性。

初始化为 -1 意味着 ++top1 用于推送,top1-- 用于弹出。

初始化为 0 意味着 top1++ 用于推送,--top1 用于弹出。

关于c - 为什么我们将栈顶初始化为-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48474020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com