只打印链表的第一个值
Only Printing the First Value of Linked List
我不知道为什么显示功能不显示第一个节点数据以外的任何内容。我已经尝试将 While(p!=NULL)
切换为 while(p->next!= NULL
但是当我这样做时,而不是仅显示第一个节点的数据,没有显示任何数据。
#include <iostream>
using namespace std;
class Node {
public:
int no;
Node* next;
};
Node* createNode(int no1) {
Node* n = new Node();
n->no = no1;
n->next = NULL;
return n;
}
void addValue(int x, Node** head) {
//insert first node into linked list
Node* n = createNode(x),*p = *head;
if (*head == NULL) {
*head = n;
}
//insert second node onwards into linked list
else {
while (p->next!= NULL) {
p->next = n;
p = p->next;
}
}
}
void display(Node *head) {
Node* temp = head;
// temp is equal to head
while (temp->next!=NULL) {
cout << temp->no;
temp = temp->next;
}
}
int main() {
int num; char choice;
Node* head = NULL;
do {
cout << "Enter a number : ";
cin >> num;
addValue(num,&head);
cout << "Enter [Y] to add another number : ";
cin >> choice;
} while (choice == 'Y');
cout << "List of existing record : ";
display(head);
return 0;
}
我尝试将 addRecord 函数中 else while 循环的内容更改为 p = p->next; p->下一个=n;按此顺序无济于事。
在while循环中,应该是
while (p->next!= NULL) {
p = p->next;
}
p->next = n;
遍历到链表的末尾,然后添加新条目。
我不知道为什么显示功能不显示第一个节点数据以外的任何内容。我已经尝试将 While(p!=NULL)
切换为 while(p->next!= NULL
但是当我这样做时,而不是仅显示第一个节点的数据,没有显示任何数据。
#include <iostream>
using namespace std;
class Node {
public:
int no;
Node* next;
};
Node* createNode(int no1) {
Node* n = new Node();
n->no = no1;
n->next = NULL;
return n;
}
void addValue(int x, Node** head) {
//insert first node into linked list
Node* n = createNode(x),*p = *head;
if (*head == NULL) {
*head = n;
}
//insert second node onwards into linked list
else {
while (p->next!= NULL) {
p->next = n;
p = p->next;
}
}
}
void display(Node *head) {
Node* temp = head;
// temp is equal to head
while (temp->next!=NULL) {
cout << temp->no;
temp = temp->next;
}
}
int main() {
int num; char choice;
Node* head = NULL;
do {
cout << "Enter a number : ";
cin >> num;
addValue(num,&head);
cout << "Enter [Y] to add another number : ";
cin >> choice;
} while (choice == 'Y');
cout << "List of existing record : ";
display(head);
return 0;
}
我尝试将 addRecord 函数中 else while 循环的内容更改为 p = p->next; p->下一个=n;按此顺序无济于事。
在while循环中,应该是
while (p->next!= NULL) {
p = p->next;
}
p->next = n;
遍历到链表的末尾,然后添加新条目。