请考虑使用此 C++ 代码创建和遍历链表(节点数由用户决定,而不是程序员)
#include <iostream>
using namespace std;
class Node
{
public:
int data; Node* next;
Node(int d, Node* j): data(d),next(j) {cout << "Constructor\n";}
};
int main()
{int n; Node* p; Node* q = 0;
while(cin >> n)
{ p = new Node(n,q);
q = p;}
for(;p->next; p=p->next)
cout << p->data << "->";
cout << p-> data << "->*\n";
return 0;}
上面的代码完美运行,用户可以使用Ctrl+D后跟Enter. 但是,如果我们使用 cin >> n 将 while(cin >> n) 替换为 while (true);在循环内,如此处所示
while(true)
{ cin >> n;
p = new Node(n,q); q = p;}
然后在用户尝试终止时,循环会继续自动创建新节点!为什么??提前致谢