我有一个创建链表的作业。我必须创建一个节点"模板化的类,用于保存任何类型的数据项和指向另一个节点的指针。创建一个链接列表类,其中包含"添加"和显示方法。创建一个" main"程序在循环中向列表中添加20个整数,并通过一次调用display方法显示列表中的所有数据。即。不要使用循环来显示"显示"方法。
我遇到的问题是,当我运行程序时,窗口出现,并且没有任何内容打印到屏幕上。我运行调试器,它没有显示任何错误。
#include "stdafx.h"
#include <iostream>
#include "time.h"
using namespace std;
template <typename T>
class Node
{
public:
T data;
Node* next;
Node(int x, Node* addr) {
data = x;
next = addr;
}
};
template <typename T>
class linklist
{
private:
Node<T>* first;
public:
linklist()
{
first = NULL;
}
void addItem(T d);
void display();
};
template <typename T>
void linklist<T>::addItem(T d)
{
Node<T> *newNode = new Node<T>;
newNode->data = d;
newNode->next = first;
first = newNode;
}
template <typename T>
void linklist<T> ::display()
{
Node<T>* current = first;
while (current != NULL)
{
cout << current->data << endl;
current = current->next;
}
}
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
linklist<int> intList;
srand(time(NULL));
for (int i = 0; i < 20; i++)
{
int random = rand()%100;
}
intList.display();
cin.ignore();
return 0;
};
答案 0 :(得分:0)
您还没有调用您创建的addItem函数来添加列表中的项目。 由于列表为空,因此不会在屏幕上显示任何内容。生成随机数时,调用addItem方法以在列表中添加项。