填空题 下面程序的功能是:首先,成员函数build1建立一条无序链表,由成员函数Print2输出无序链表中各结点的值;再由成员函数sort3对已建的链表根据链表结点值的大小按升序进行排序,由成员函数print4输出有序链表中各结点的值。试完善程序。 [程序](4分) #include struct Node{ double num; Node *next; }; class Chain{ private: Node *h; public: void sort(void); Chain5{h=0;} ~Chain6 { Node *p; while(h){ p=h; h=h->next; delete p; } } void build(void); void print(void) { Node *p=h; while(p){ cout<nun<<'/t'; p=p->next; } cout<<'/n': } }; void Chain::build(void) { Node *p,*p1; double x; cout<<"输入一个实数,以0结束:"; cin>>x; while(x!=0){ p=new Node; P->num=x; if(h==0) h=p1=p; else{ p1->next=p; p1=p; } cout<<"输入一个实数,以O结束:"; cin>>x; } p->next=0: } void Chain::sort(void) { if(h==0)return; Node *h1,*p; h1=0; while(h){ p=h; ( 27 ) ; Node *p1,*p2; if(h1==0){ h1=p; ( 28 ) ; } else if(h1->num>=p->num){ ( 29 ) ; h1=p; } else{ p2=p1=h1; while(p2->next && p2->numnum){ p1=p2;p2=p2->next; } if(p2->numnum){ (30) ; p->next=0; } else{ p->next=p2;p1->next=p; } } } h=hl; } void main(void) { Chain x; x.build7; ’ cout<<"排序前的链表为:"; x.print8; x.sort9; cout<<"/n排序后的链表为:"; x.print10; }
  • 1、
【正确答案】 1、(27)h=h->next或h=p->next (28)p->next=0或h1->next=O或p->next=NULL或hl->next=NULL (29)p->next=h1 (30)p2->next=p    
【答案解析】