我是C ++的新手,在自学过程中遇到了有关链表递归的一些问题。任何帮助表示赞赏。
我知道,名为“ data”的变量存储当前数字,而“ next”存储下一个类的地址,该类包含下一个数字和地址。
据我所知,递归是调用自身的函数,需要一个基本情况才能停止自身,否则程序将遇到堆栈溢出的问题。但是,C ++链表程序中的以下代码没有基本情况,因此,每当调用该函数时,是否表示该函数将形成有限的节点并在堆栈溢出时停止?如果是这样,这是否也意味着链表具有长度限制?
class Node {
int data; //store the current vaule
Node *next; //the address of the next value
}
答案 0 :(得分:1)
如果不初始化Node
的成员,则对它的任何使用都是不确定的行为。
您通常将定义 nullptr
定义为“没有更多元素”,将任何有效的指针定义为“存在更多元素”,然后使用该定义编写函数,注意不要有无效的指针值。
所有这些假设都将您编码为学习练习。如果不是,则使用std::vector
而不是自己编写容器。