-1
我相信我在这里有一个相当大的问题,过去几天我一直在关注链表(我最终目标是构建一个多表),但现在我正在使用我的“addNode”函数,我试图弄清楚如何让用户输入数据点,而不是硬编码到程序中。我ADDNODE功能看起来这样:如何允许用户输入链接列表中的数据点C++
void List::AddNode(int addData) {
nodePtr n = new node;
n->classpointer = NULL;
n->class_number = addData;
cout << "What value would you like to add?" << endl;
//I believe that right here is where I need to figure out
//how to allow the user to add what they want the data point to be.
if(head != NULL) {
curr = head;
while (curr->classpointer != NULL) {
curr = curr->classpointer;
}
curr->classpointer = n;
}
else {
head = n;
}
}
所有的一切我正在寻找如何让用户输入此数据点提供一些指导。如果你需要看到更多的代码,请让我知道,谢谢所有提前。
我一次只采取一步。最终目标是创建一个多链表,但我只是从一个单独的链表开始,并确保我能够正确地工作。但是,“恒定时间”addNode是什么意思? –
另外,在我的main()函数中,我在调用List.addNode(“insert int value here”)来输入数据,但是当我希望用户输入数据时,如何在不输入int的情况下调用该函数当我要求它的价值? –
如果熟悉大O符号,常数时间是O(1)。现在,您遍历整个链表,所有N个节点,这意味着计算机必须处理N个节点才能结束。如果你有一个尾巴指针,你不会浪费那个处理时间,它只需要一个额外的指针。现在,您可以立即在列表的末尾放置一个新节点。如果你的列表非常长,如果你像现在一样迭代,它会花一些时间才能找到最终结果。 – Kirkova