【发布时间】:2017-08-22 17:03:59
【问题描述】:
我是编程新手 在这里,我编写了一个使用链表接受和显示值的代码。 但是,代码采用所有值,但仅显示最后一个值 这是代码
#include <iostream>
using namespace std;
struct node {
int value;
node* next;
};
class llist {
public:
void create();
void display();
node* head = NULL;
};
void llist::create()
{
struct node* temp;
temp = NULL;
struct node* p;
p = new struct node;
cin >> p->value;
if (head == NULL) {
head = p;
}
else {
temp = head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->value = p->value;
temp->next = NULL;
}
}
void llist::display()
{
struct node* temp = head;
while (temp != NULL) {
cout << "VALUE:" << temp->value << endl;
temp = temp->next;
}
}
int main()
{
int n, i;
llist l1;
cin >> n;
for (i = 0; i < n; i++)
l1.create();
cout << "Displaying list\n";
l1.display();
return 0;
}
输入:
4
1
2
3
4
显示列表
值:4
我想知道出了什么问题...
【问题讨论】:
-
我建议使用调试器逐行检查您的代码,看看实际发生了什么。
-
什么都没有
-
你将
node * next初始化成什么? -
什么都没有我会重新调查。确保您查看每一步的变量。编写代码后,您应该了解预期值是什么......
-
@ZIAANSARI “什么都没有” 你什么意思?你检查变量值了吗?他们都如你所愿吗?