提示用户填写链接列表

Prompt the user to fill the linked list

本文关键字:链接 列表 用户 提示      更新时间:2023-10-16

我正在尝试通过遍历链接列表,然后用用户输入填充每个节点数据来填充已经创建的链接列表,但是由于某些原因,1040次后,它停止询问其他值。但是,假设我有1000号尺寸的链接列表,它可以正常工作,但对于1040的尺寸,它不会提示用户。每次生成随机的1100个元素时,我都不会输入价值。

inline void myArray<T>::init() {
 Node<T>* temp = head;
T input;
    while(temp!=NULL) {
    cin >> input;
    temp->data = input;
    temp = temp->next;
}
}

如果我做这样的事情,它的工作正好无关紧要。链接列表的大小是什么..

inline void myArray<T>::init() {
 Node<T>* temp = head;
    while(temp!=NULL) {
    temp->data = 5;
    temp = temp->next;
}
}

所以,现在我认为错误与采集输入有关

我不确定"继续失去头"的意思。但是,当您写" head = temp;"时,您正在将头节点重新分配到temp。但是,temp->下一行分配了上一行。因此,您可能希望检查您的作业声明,以确保您的工作确实是您想要的。希望会有所帮助。

我相信,Wheather头是否为null,您应该设置temp->next = head。或者,新节点和现有节点之间没有链接。它不能妥协链接列表。

inline myArray<T>::myArray(int size, T value) {
  setSize(size);
  for(int i = 0;i<size;i++) {
  Node<T>* temp = new Node<T>();
  if(i==size-1) {
    temp->data = 555555555;  //set a different value to distinguish between head and other node
    temp->next = 0;
  } else {
    temp->data = 0;
    temp->next = 0;
  }
  temp->next=head;
  head=temp;
  }
}