所以我想我的问题有点菜鸟,但我们刚刚开始链表、堆栈和队列,我觉得在语法方面有点迷茫。
我有一个可以工作的链表结构,可以添加到前后、推送、弹出、删除等。但是当涉及到在堆栈实现中调用这些函数时,我会迷失方向。链接列表类声明位于头文件中,函数定义位于 .cpp 文件中。堆栈是完全相同的故事。我们已获得带有函数声明的头文件,我们需要在单独的 .cpp 文件中编写我们自己的定义。
我的问题在于在栈函数中调用链表函数。栈中包含一个“LList数据”(链表结构称为LList);指向整数(我假设)“int *data”的指针和跟踪堆栈顶部的整数“int t”
我们必须编写的函数是构造函数、析构函数、pop、push 和 size 函数。我会提供源代码,但它实际上根本没有任何重要意义。
希望我的问题能被理解>_< 提前致谢 卡梅伦
最佳答案
栈只是一个具有不同接口(interface)函数的链表。您只需要能够将元素push
到堆栈的“顶部”,然后从顶部pop
。
看起来您的 Stack
类实现被设计为围绕您已有的 LList
类进行包装。
不深入细节(不看代码有点难),
- 您有一个
Stack
类,其中一个LList
作为成员变量(最好是私有(private)的)。 - 您的
push
函数应该简单地插入到链表的尾部。 - 您的
pop
函数应该从链表的尾部删除最后一个元素 - 您的
~Stack
实现应该删除您创建的LList
对象;如果您使用智能指针,则可以跳过此步骤;如果您使用new
手动创建对象,则可以使用delete
关键字。
更多代码将有助于完善这个答案。
关于c++ - C++中栈的链表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25827951/