请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明了SortedList类,是一个用于表示有序数据表的类。其成员函数insert的功能是将一个数据插入到一个有序表中,使得该数据表仍然保持有序。请编写这个insert函数。程序

admin2016-08-19  16

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明了SortedList类,是一个用于表示有序数据表的类。其成员函数insert的功能是将一个数据插入到一个有序表中,使得该数据表仍然保持有序。请编写这个insert函数。程序的正确输出应为:
    插入前:
    1,2,4,5,7,8,10
    插人6和3后:
    1,2,3,4,5,6,7,8,10
    要求:
    补充编制的内容写在“//料**********333**********”与“//********666********”之间。不得修改程序的其他部分。
    注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obi文件,并且在本程序中调用。
1   //SortedList.h
2   #include
3   using namespace std;
4   class SortedList{//有序数据表类
5  int len;
6  double*d;
7   public:
8   SortedList(int len,double data[]=NULL);
9  ~SortedList(){delete {]d;}
10  int length()const{return len;)//有序数据表长度(即元素的个数)
11  double getElement(int i)const{re-turn d;}
12  void insert(double data);
13  void show()const;//显示有序数据表
14    };
15  void writeToFile(char*,const Sort-
16  edList&);
1  //main.cpp
2  #include"SortedList.h"
3
4  SortedList::SortedList(int len,
5   double data[]):len(len){
6   d=rlew double[len];
7    for(int k=0;k8   d[k]=(data==NULL?0.0:data[k]);
9    for(int i=0;i10    int m=i;
11    for(int j=i;j12    if(d[j]13    if(m>i){
14   double t=d[m];
15   d[m]=d
16   d=t;
17    }
18    }
19    }
20  void SortedList::insert(double da-
21  ta){
22    //********333********
23
24
25    //********666********
26  }
27  void SortedList::show()const{//显示有序数据表
28    for(int i=0 ;i29    cout<<<",";
30   tout<31    }
32  inL main(){
33  double s[]={5,8,1,2,10,4,7};
34    SortedList list:(7,s);
35
36    cout<<"插入前:"<37    list:.show();
38    list:insert(6.0);
39    list.insert;(3.0);
40    couL<<"插入6和3后:"<41    list.show();
42    wrriteToFile(" ",list);
43    return 0;
44  }

选项

答案1 for(int i=0;ii;k--)//在数组d中从k等于fen到i做遍历 7 dd[k]=d[k-1];//把d[k-1]赋值给dd[k] 8 dd[i]=data;//把data赋值给dd[i] 9 for(int j=0;j
解析 主要考查考生对插入算法的掌握,题目要求insert函数的功能是将一个数据插入到一个有序表中,使得该数据表仍保持有序。可以知道数据表d是一组有序的数组,那么就采取先比较再插入的步骤完成即可。
    要注意动态数组d的长度是确定的,要添加元素,就要重新分配空间。
转载请注明原文地址:https://kaotiyun.com/show/hZNp777K
0

最新回复(0)