键盘输入head1之后,通过按Ctrl+z停止输入,但也无法进入head2的cin输入了。
程序需要如果改?谢谢。
#include <iostream>
#include <cstdio>
using namespace std;
template <class T>
class Node
{
public:
Node *prev, *next;
T value;
Node():prev(this),next(this){}
Node(T x):prev(NULL),next(NULL),value(x){}
Node(T x, Node *p, Node *n):prev(p),next(n),value(x){}
};
template <class T>
int calcLength(Node<T>* head)
{
int nLen=0;
Node<T> *p=head->next;
while(p!=head)
{
nLen++;
p=p->next;
}
return nLen;
}
int main()
{
int tmp;
cout << "input link1:" << endl;
Node<int> *head1 = new Node<int>();
Node<int> *p=head1;
while (cin >> tmp)
{
if(tmp==NULL)break;
Node<int> *p = new Node<int>(tmp, head1, head1->next);
head1->next = head1->next->prev = p;
}
int len1=calcLength(p);
cout << "input link2:" << endl;
Node<int> *head2 = new Node<int>();
p=head2;
while (cin >> tmp)
{
if(tmp==NULL)break;
Node<int> *p = new Node<int>(tmp, head2, head2->next);
head2->next = head2->next->prev = p;
}
int len2=calcLength(p);
cout << len1 << endl;
cout << len2 << endl;
return 0;
}