第二章测试
1.
线性表中的数据元素有一个前驱多个后继。

A:对 B:错
答案:B
2.
用顺序结构存储,删除最后一个结点时,(   )

A:其它 B:一定不会移动其它结点位置 C:可能会移动其它结点位置 D:会移动其它结点位置 3.
链表中逻辑上相邻的元素的物理地址__________相邻。    

A:必定 B:一定不 C:不一定 D:其它 4.

1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。
//将合并逆置后的结果放在C表中,并删除B表
StatusListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C)
{
     LinkList pa,pb,qa,qb;
     pa=A;
     pb=B;
     qa=pa;   //保存pa的前驱指针
     qb=pb;   //保存pb的前驱指针
     pa=pa->next;
     pb=pb->next;
     A->next=NULL;
     C=A;
     while(pa&&pb){
          if(pa->data<pb->data){
               qa=pa;
               pa=pa->next;
               qa->next=A->next;  //将当前最小结点插入A表表头
               A->next=qa;
          }
          else{
               qb=pb;
               pb=pb->next;
              (           )//将当前最小结点插入B表表头
               A->next=qb;
          }
     }
     while(pa){
          qa=pa;
          pa=pa->next;
          qa->next=A->next;
          A->next=qa;
     }
     while(pb){
          qb=pb;
          pb=pb->next;
          qb->next=A->next;
          A->next=qb;
     }
     pb=B;
     free(pb);
     return OK;
}

A:qa->next=A->next B:qb->next=A->next C:qb->next=A; D:qa->next=A; 5.

假设某个单向循环链表的长度大于1,且表中既无头结点也无头指针。已知s为指向链表中某个结点的指针,试编写算法在链表中删除指针s所指结点的前驱结点。

StatusListDelete_CL(LinkList &S)

{
     LinkList p,q;
     if(S==S->next)return ERROR;
     q=S;
     p=S->next;
     while(       ){
          q=p;
          p=p->next;
     }
     q->next=p->next;
     free(p);
     return OK;
}


A:p==S B:p->next!=S C:p->next==S D:p!=S

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(171) dxwkbang
返回
顶部