数据结构第5章例题与答案4
来源:优易学  2010-1-14 18:18:02   【优易学:中国教育考试门户网】   资料下载   IT书店
35. 已知a数组元素共5个,依次为12,10,5,3,1;b数组元素共4个,依次为4,6,8,15,则执行如下所示的过程语句sort后得到c数组各元素依次为15,12,10,8,6,5,4,3,1;数组a,b,c的长度分别为l=5,m=4,n=9请在程序中方框内填入正确的成分,完成上述要求。
      procedure   sort;
        var   i, j, k, x: integer;  d: array[1..m] of  integer;
        begin 
          for i:=1 to  m do   d[i]:=(1)          ;
          i:=1; j:=1; k:=1;
          while (i<=l) and (j<=m) do 
             begin 
if a[i]>d[j] then begin(2)   ; (3)  _end
                           else begin (4)__; (5) __end;
              c[k]:=x; (6)   
             end;
while(7)   _do
begin c[k]:=a[i]; k:=k+1; i:=i+1;end;
while(8)   _do 
begin c[k]:=d[j]; k:=k+1; j:=j+1;end;
end. {sort}  【上海交通大学 1998 七 (12分)】
36. 下列程序段search(a,n,k)在数组a的前n(n>=1)个元素中找出第k(1<=k<=n)小的值。这里假设数组a中各元素的值都不相同。
#define  maxn  100
int  a[maxn],n,k;
int  search_c(int a[],  int  n,  int  k)
{int  low,  high,  i,  j,  m,  t;
   k--,;low=0 ;high=n-1;
   do {i=low;  j=high ;  t=a[low];
       do{while  (i<j  && t<a[j])  j--;
           if  (i<j)  a[i++]=a[j];
           while  (i<j && t>=a[i])  i++
           if  (i<j)  a[j--]=a[i];
          }  while (i<j);
a[i]=t;
if (1)    ;
  if (i<k) low= (2)    ; else high= (3)    ;
}while(4)   _;
return(a[k]);
}      【上海大学 1999 一、1(8分)】 
37. 完善下列程序,每小题在pascal语言(a)和c语言(b)中任选一题。下面是一个将广义表逆置的过程。例如原来广义表为((a,b),c,(d,e)),经逆置后为:((e,d),c,(b,a))。
(a)算法的pascal语言过程描述(编者略):(b)算法的c语言过程描述:
typedef  struct  glistnode   
{int  tag;
struct  glistnode *next;
union{char data;
       struct{struct glistnode *hp,*tp;}ptr;
      }val;
}*glist,gnode;
glist  reverse(p)
glist p;
{glist  q,h,t,s; 
 if(p==null)  q=null;
else
{if(1)   { q=(glist)malloc(sizeof(gnode));  q->tag=0;  
             q->val.data=p->val.data;  }
   else {(2)   
         if (3)   
{t=reverse(p->val.ptr.tp); s=t;
             while(s->val.ptr.tp!=null)   s=s->val.ptr.tp;
             s->val.ptr.tp=(glist)malloc(sizeof(gnode));
s=s->val.ptr.tp;s->tag=1;s->val.ptr.tp=null;
             s->val.ptr.hp=h; (4)   __ }
else {q=(glist)malloc(sizeof(gnode));q->tag=1;
                q->val.ptr.tp=null; (5)   ; } 
}
}
return(q);
}
【上海大学 2002 六、3 (10分)】

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训