所以我的第一个问题。我正在处理一个项目,我需要我的构造函数来创建一个空的链表。这是正确的吗?
// member variables
private:
node* headptr;
size_type howmany;
//constructor
SuperList::SuperList(){
headptr = NULL; //does this create an empty list?
howmany = 0; //counts how many nodes are in the list
}
第二个问题。我需要创建一个isEmpty()函数和一个isFull()函数。对于isEmpty()函数,我只看到howmany == 0,对吧?但要检查列表是否已完全如何执行此操作?对于普通数组,有一个CAPACITY,但没有为链表提供容量。
//these are the specifications I was given for the isFull function
Effect: Determines if this list is full
Precondition: NONE
Postcondition: this object is unchanged
Returns: true if it is not possible to allocate any more memory, false otherwise
bool SuperList::isFull() const
答案 0 :(得分:1)
第一个问题:
第二个问题
isEmpty()
可以通过检查how_many
是否为零来完成
只需检查是否headptr == NULL
。
isFull()
取决于您是否真的要设置列表长度的限制。一般来说,列表只能受系统中可用内存分配量的限制。如果你的意图是设置一个限制,那么我将允许用户通过构造函数传入一个数字来指定它们的列表大小。从这里你可以简单地使用一个计数器来跟踪......