对于学校作业,我们要求使用c ++中的数据结构制作链表。 现在我们从未接触过c ++(仅在JAVA中涉及到一点点),因此分配有点压倒性。
我在遍历和关注我的链接列表时遇到了一些麻烦(假设我创建链接列表的方式并非严重缺陷)。
给出以下代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
struct getallenlijst {
int getal1;
int getal2;
int getal3;
getallenlijst* next;
};
int main() {
srand(time(NULL)); //Create random nummer, seed is time voor randomize.
getallenlijst* n; //maak pointer aan voor n. Maken hiermee nieuwe structs aan.
getallenlijst* t; //maak pointer aan voor t. Linken hiermee de boel aan elkaar.
getallenlijst* h; //maak hiermee een start punt.
n = new getallenlijst; //maak nieuwe struct aan.
n->getal1 = rand(); //vul met data.
n->getal2 = rand();
n->getal3 = rand();
t = n; //definieer t voor linken van lists.
h = n; //definieer h zodat we altijd terug naar start kunnen.
n = new getallenlijst;
n->getal1 = rand();
n->getal2 = rand();
n->getal3 = rand();
t->next = n; // verplaats t naar voren van oude struct.
t = n; //verplaats t weer naar de next in struct.
n = new getallenlijst;
n->getal1 = rand();
n->getal2 = rand();
n->getal3 = rand();
t->next = n; // verplaats t naar voren van oude struct.
n = new getallenlijst;
t = n; //verplaats t weer naar de next in struct.
n->getal1 = rand();
n->getal2 = rand();
n->getal3 = rand();
t->next = n; // verplaats t naar voren van oude struct.
n = new getallenlijst;
t = n; //verplaats t weer naar de next in struct.
n->getal1 = rand();
n->getal2 = rand();
n->getal3 = rand();
t->next = n; //verplaats t weer.
n->next = NULL; //Eindig lijst.
//Loop om getallen uit te printen.
getallenlijst *current = n;
while( current != NULL ) {
cout << (*current).getal1 << endl;
cout << (*current).getal2 << endl;
cout << (*current).getal3 << endl;
current = current->next;
}
delete n;
return 0;
}
我希望使用while循环我遍历结构(列表)并cout我创建的所有整数。但它实际上似乎只显示第一个列表的整数值。
对不起,很多声明和评论都是荷兰语,我从未想过我会发布这个并提出问题。
有人愿意让我朝正确的方向点头吗? (我认为这是因为在我的第一个列表中,下一个指针可能是空的但我不知道如何解决它)
提前谢谢。
编辑:添加了我的代码中缺少的部分,但没有复制和粘贴。