c++ - C++中栈的链表实现

标签 c++ oop syntax linked-list stack

所以我想我的问题有点菜鸟,但我们刚刚开始链表、堆栈和队列,我觉得在语法方面有点迷茫。

我有一个可以工作的链表结构,可以添加到前后、推送、弹出、删除等。但是当涉及到在堆栈实现中调用这些函数时,我会迷失方向。链接列表类声明位于头文件中,函数定义位于 .cpp 文件中。堆栈是完全相同的故事。我们已获得带有函数声明的头文件,我们需要在单独的 .cpp 文件中编写我们自己的定义。

我的问题在于在栈函数中调用链表函数。栈中包含一个“LList数据”(链表结构称为LList);指向整数(我假设)“int *data”的指针和跟踪堆栈顶部的整数“int t”

我们必须编写的函数是构造函数、析构函数、pop、push 和 size 函数。我会提供源代码,但它实际上根本没有任何重要意义。

希望我的问题能被理解>_< 提前致谢 卡梅伦

最佳答案

栈只是一个具有不同接口(interface)函数的链表。您只需要能够将元素push 到堆栈的“顶部”,然后从顶部pop

看起来您的 Stack 类实现被设计为围绕您已有的 LList 类进行包装。

不深入细节(不看代码有点难),

  1. 您有一个 Stack 类,其中一个 LList 作为成员变量(最好是私有(private)的)。
  2. 您的 push 函数应该简单地插入到链表的尾部。
  3. 您的 pop 函数应该从链表的尾部删除最后一个元素
  4. 您的~Stack 实现应该删除您创建的LList 对象;如果您使用智能指针,则可以跳过此步骤;如果您使用 new 手动创建对象,则可以使用 delete 关键字。

更多代码将有助于完善这个答案。

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

相关文章:

c++ - 如何在 C++ 中为增加但记住先前对象删除的对象分配唯一标识符

c++ - wxWidgets - wxMediaCtrl - 视频不播放

c++ - 如何将十六进制转换为字符串? C++

php - PHP 中是否有像现在 C# 中那样的特殊对象初始化器构造?

javascript - 在 node.js 中,如何以最轻量级的方式检查给定的一串代码在语法上是否正确?

c++ - "Using"类内指令

模拟一本书的 Java 类

opengl - 如何在函数调用中跟踪 OpenGL 状态?

Java语法问题

Java语法: Shortcuts in Method Declarations?