练习:

第一章

6. 编写算法,求一元多项式的值latex($$Pn(x)=a_0+a_1x+a_2x^2+...+a_nx^n$$)

   1 /*数组a指定多项式的各个系数,n指定多项式的最高次数,x指定自变量的值,返回多项式的值*/
   2 double p(double x, double a[], int n) {
   3    double result = 0.0;
   4    int i = 0;
   5    for(i = n; i >= 0; i--) {  //n+2次
   6       result *= x;            //n+1次
   7       result += a[i];         //n+1次
   8    }
   9 }

总计 = 3n+4次

第二章

4. 已知顺序表L递增有序,写一个算法将X插入到线性表适当位置上,使顺序表仍然递增有序。

   1 /*顺序表list递增有序,insert_order将x插入到list当中使list仍然递增有序*/
   2 void insert_order(seq_list *list, ElemType x){
   3    int i, pos;
   4    for(i = 0; i < list->size; i++)
   5       if(list->elem[i] >= x)
   6          break;
   7    pos = i;
   8    for(i = list->size-1; i >= pos; i--)
   9       list->elem[i+1] = list->elem[i];
  10    list->elem[pos] = x;
  11 }

5. 编写一个算法,从顺序表中删除自第i个元素开始的k个元素

   1 /*删除顺序表list中从pos开始的num个元素*/
   2 void delete_from_ith(seq_list *list, int pos, int num){
   3    int i;
   4    pos--; /*把元素的逻辑位置变成数组中的存放位置。逻辑位置从1开始,存放物理位置从0开始,两者差1*/
   5    for(i = pos+num; i < list->size; i++)
   6       list->elem[i-num] = list->elem[i];
   7 }
ch3n2k.com | Copyright (c) 2004-2020 czk.