gpt4 book ai didi

c - Linked List - Stack Building - C - 这个教程是否正确

转载 作者:太空宇宙 更新时间:2023-11-04 02:35:50 24 4
gpt4 key购买 nike

我正在努力完成 coursebuffet.com 上的计算机科学类(class),该网站将我推荐给 saylor.org,它给了我 this了解如何在 C 中使用链表实现堆栈。

首先,我想我理解了这个概念,但是如果您愿意,请在链接中向下滚动,您会在它的末尾找到一个指向主文件的链接,您应该用它来测试它的实现.在过去的两天里,绝对让我感到困惑的是(是的,这就是我已经在这个问题上沉思了多少时间)是以下段落:

/*
* Initialize the stack. Make it at least
* big enough to hold the string we read in.
*/
StackInit(&stack, strlen(str));

我不明白如何初始化链表。我的意思是,这违背了它的理念,不是吗?在用推送命令填充它们之前,我需要创建结构元素,但如果我这样做,我需要在两个方向上跟踪堆栈。插入它的一个方向和弹出它的相反方向。那将需要两个指针。我认为此处描述的整个概念是每个 ADT 单元一个数据元素和一个指针。

谁能给我解释一下吗?

最佳答案

当您将列表初始化为您要读取的字符串的长度时,您仍然会有指向列表第一个元素的堆栈指针。所以基本上什么都不会丢失。不管你是对的,做那样的事情是没有意义的。

不需要双向链表。堆栈指针将始终指向第一个元素。基本上,无论何时你想要 push() ,你都会将新节点添加到列表的开头,而每当你想要 pop() 时,你都会删除列表的第一个节点.

关于c - Linked List - Stack Building - C - 这个教程是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37733049/

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