填空题
下面程序的功能是:首先,成员函数build
1建立一条无序链表,由成员函数Print
2输出无序链表中各结点的值;再由成员函数sort
3对已建的链表根据链表结点值的大小按升序进行排序,由成员函数print
4输出有序链表中各结点的值。试完善程序。
[程序](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;
}