【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空:
#include<iostream.h>
#include<assert.h>
template<class T>class List; template<class T>class ListNOde
friend (1)
private:
T data;
ListNode<T> *link;
public:
ListNode( ):link(NULL)( )
ListNOde(const T& item,ListNOde<T>*next=NULL)
:data(item),link(next)

template<class T>class List
private:
ListNode<T>*first;
void createList(T A[],int n,int i,ListNOde<T>*&p);
void printList(ListNOde<T>*p);
public:
List( );
~List( );
friend ostream& operator<<(ostream& ost,List<T>&L);
friend istream& operator>>(istream& ist,List<T>&L);

template<class T>
istream& operator>>(istream& ist,List<T>&1)
int i,n; ist>>n;
T A[n];
for(i=0;i<n;i++) (2)
createList(A,n,0,first);

template<class T>
void List<T>::createList(TA[],int n,int i,ListNOde<T>*& p)
//私有函数:递归调用建立单链表
if(i==n)p=NULL;
else
p=new ListNode<T>(A[i]);
assert(p !=NULL);
createList( (3) );


template<class T>
ostream& operator<<(ostream& ost,List<T>& L)
(4)

template<class T>
void List<T>::printList(ostream& ost,ListNode<T>*p)
if(p!=NULL)
ost<<p->data;
(5)

【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空: #include<iostream.h> #include<assert.h> template<class T>class List; template<class T>class ListNOde{ friend (1) ; private: T data; ListNode<T> *link; public: ListNode( ):link(NULL)( ) ListNOde(const T& item,ListNOde<T>*next=NULL) :data(item),link(next){} }; template<class T>class List{ private: ListNode<T>*first; void createList(T A[],int n,int i,ListNOde<T>*&p); void printList(ListNOde<T>*p); public: List( ); ~List( ); friend ostream& operator<<(ostream& ost,List<T>&L); friend istream& operator>>(istream& ist,List<T>&L); }; template<class T> istream& operator>>(istream& ist,List<T>&1){ int i,n; ist>>n; T A[n]; for(i=0;i<n;i++) (2) ; createList(A,n,0,first); } template<class T> void List<T>::createList(TA[],int n,int i,ListNOde<T>*& p){ //私有函数:递归调用建立单链表 if(i==n)p=NULL; else{ p=new ListNode<T>(A[i]); assert(p !=NULL); createList( (3) ); } } template<class T> ostream& operator<<(ostream& ost,List<T>& L){ (4) ; } template<class T> void List<T>::printList(ostream& ost,ListNode<T>*p){ if(p!=NULL){ ost<<p->data; (5) ; } }

微信扫码获取答案解析
下载APP查看答案解析