【发布时间】:2010-12-06 02:36:11
【问题描述】:
我几周前才开始学习 C++。所以现在我有这个学校作业问题,要求我在不使用“new”或任何与动态分配内存有关的情况下实现一个链表(并且不能使用来自 STL 的任何 ADT)。教授说一切都可以在堆栈上完成,但是怎么做呢?自周五以来我一直在努力,但仍然坚持这一点,完全没有运气。
它说:保留一堆正在读取的文件名。对堆栈使用以下数据结构:
struct Node {
string fileName;
Node *link;
};
我试图避免使用 new,但是当我将列表的头部传递给递归方法调用时,它总是给我“分段错误”或“BUS 错误”。关于如何解决这个问题的任何想法?
【问题讨论】:
-
这里的人不会愿意从头开始为你写作业。既然你已经有了一些代码,你应该把它缩减为一个最小的例子并发布它,询问你哪里出错了。
-
你能发布完整的作业文本吗?目前尚不清楚您在谈论什么文件名。查看代码也会很有用。另外,您确定不是简单地要求您保留一组预先分配的节点,然后在它们之间创建链接吗?
-
你能发布一些代码吗?递归调用?
-
你应该对链表进行哪些操作?仅使用堆栈是不可能删除任意列表成员的。
-
在我看来,“保持堆栈”和“在堆栈上”之间存在很大差异。第一个是数据结构,第二个是特定的内存区域。
标签: c++ linked-list stack