阅读下列C++程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空: #include<iostream.h> #include<assert.h> templ

admin2009-02-15  37

问题 阅读下列C++程序和程序说明,将应填入(n)处的字句写在对应栏内。
   【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空:
   #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);
      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);
      }
   }

选项

答案(1)class List<T> (2)ist>>A[i] (3)A,n,i+1,p->link (4)printList(ost,first) (5)printList(p->link)

解析 (1)class List<T>
   模板类<class T>class List必须声明为模板类<class T>class ListNode的友元类,这样模板类<class T>class List的所有成员函数都可以直接访问模板类<class T>class ListNode的私有成员。
(2)ist>>A
   重载友元函数>>,从输入流对象ist读取具有n个值的数组A[],调用成员函数createList建立链表L。
(3)A,n,i+1,p->link
   递归成员函数createList,根据给定的具有n个值的数组A[],建立以指针p为头指针的单链表。
(4)printList(ost,first)
   重载友元函数<<,将first链表输出到输出流对象ost,调用成员函数printList实现。
(5)printList(p->link)
   递归成员函数printLisk,输出以指针p为头指针的链表各结点所包含的数据到输出流对象ost中。
转载请注明原文地址:https://kaotiyun.com/show/DMDZ777K
0

相关试题推荐
最新回复(0)