填空题 以下程序中各函数的功能是;createlist (int *x,int num)根据数组x中的数据产生具有num个结点的链表;concatenate(list *h1,list *h2)将h1和h2所指向的两个链表连接成一个链表;sort(list *h,int num)将h所指向的链表(有num个结点)按结点数据的升序排列,在排序过程中只交换结点上的数据,即将最小数放到第一个结点上,将次小数放到第二个结点上,…,直至最大数放在最后一个结点上为止;delelist1依次删除链表上的结点。 [程序](4分) #include struct list{ int data; struct list *next; ); void print (list *h) { while (h){ cout<data<<'/t'; h=h->next;} cout<2(27) 3 ; min=p1->data; p3=p1; p2=p1->next; while( 4(28) 5 ){ if (min>p2->data){ min=p2->data; p3=p2; } p2=p2->next ; } if(p3 !=pl){ p3->data =p1->data; p1->data =min; } } return h; } list *createlist(int *x,int num) { list *tmp1,*tmp2,*p ; int i; p= new list; p->data=x[0] ; tmpl=p ; for(i=1;inext=NULL; 6(29) 7; tmpl->next=tmp2 ; tmpl=tmpl->next ; } return p; } list *concatenate(list *h1,list *h2) { list *tmp; tmp=h1 ; while( 8(30) 9) tmp=tmp->next ; tmp->next=h2 ; return h1; } void delelist(list *h) { list *p; while (h) { p=h; h=h->next ; delete p; } } void main(void) { int a[]= {3,12,8,9,11},b[]= {13,5,20,20,35,18} ; list *h1,*h2,*h; hl=createlist (a,5) ; print (hl) ; h2=createlist (b,6) ; print (h2) ; h=concatenate (hl,h2) ; print (h) ; h=sort (h,11) ; print (h) ; delelist (h) ; }
【正确答案】
【答案解析】