Он также должен быть очень ограничен по размеру из-за ограниченного размера стека.
То, что вы могли бы, например, реализовать, является векторным контейнером с изменяемым размером, который имеет небольшую постоянную память и, следовательно, небольшую константу максимальный размер.
Вы также можете создать связанный список в рекурсивной функции, где голова находится в текущем кадре, а узлы-преемники находятся в кадрах, которые рекурсивно вызывали функцию. Размер будет увеличиваться при вызове функции и уменьшаться при возврате.
Будет ли полезен такой контейнер - другой вопрос.
Если вы не против, можете Вы объясните идею связного списка подробнее (может быть, просто, может быть, дадите небольшую демонстрацию)?
Вот чрезвычайно глупый способ распечатать серию чисел, используя связанный список в стеке выполнения:
struct node {
int data;
node* next;
};
void foo(node* p)
{
if (p->data > 0) {
node n {
.data = p->data - 1,
.next = p,
};
foo(&n);
} else {
for (; p ; p = p->next) {
std::cout << p->data;
}
}
}
int main ()
{
node n {
.data = 10,
.next = nullptr,
};
foo(&n);
}