// 北京交通大学 2007-3-30 #include <iostream> using namespace std; struct LNode { int data; struct LNode *next; }; class Link { public: Link():m_Len(0),m_head(0){}; Link(int Len); Print(); Reverse(); private: LNode *m_head; int m_Len; }; Link::Link(int Len) { int i; LNode *ptr; m_head=ptr=new LNode; for(i=1;i<=Len;i++) { cin>>ptr->data; if(i<Len) { ptr->next=new LNode; ptr=ptr->next; } } ptr->next=NULL; } Link::Print() { LNode *ptr=m_head; while(ptr!=NULL) { cout<<ptr->data<<endl; ptr=ptr->next; } } Link::Reverse() { LNode *ptr1=m_head,*ptr2=ptr1->next,*ptr3; ptr1->next=NULL; while(ptr2!=NULL) { ptr3=ptr2->next; ptr2->next=ptr1; ptr1=ptr2; ptr2=ptr3; } m_head=ptr1; } int main() { Link l(5); l.Print(); l.Reverse(); l.Print(); return 0; }