这是我在C++中实现列表的程序。我输入元素直到0.程序正确显示了我第一个元素,但是第二个错误。我大概是在第二个条件在列表C++中查找第一个和第二个元素
if (p -> next == first) {
secondElement = first -> data;
}
犯错误。你能说出它有什么问题吗?由于
#include "stdafx.h"
#include "iostream"
using namespace std;
struct Node {
int data;
Node *next;
};
int firstElement;
int secondElement;
int main()
{
Node *first = 0;
Node *p;
cout << "Enter a list" << endl;
int i;
while (true) {
cin >> i;
if (i == 0) break;
p = new Node;
p -> data = i;
p -> next = first;
if (first == 0) {
first = p;
firstElement = first -> data;
}
if (p -> next == first) {
secondElement = first -> data;
}
first = p;
}
cout << "First element is: " << firstElement << endl;
cout << "Second element is: " << secondElement << endl;
cout << "List: ";
p = first;
while (p) {
cout << p -> data << " ";
p = p -> next;
}
cout << endl;
return 0;
}
为什么不只是使用std :: list? – 2014-10-29 18:49:01
这是我的任务。我必须手动做 – Luchnik 2014-10-29 18:50:51
我相信它的印刷第一和第二个元素相同。 – ravi 2014-10-29 18:52:36