熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構考研分類復習真題 第二章 答案[34]

2013-11-15 15:23:29  來源: 數據結構 

  與本題類似的題的解答如下

  ()本題與第題基本相同不同之處僅在於插入B鏈表第j個元素之前的不是刪除了len個元素的A鏈表而是被刪除的len個元素按照上題這len個元素結點中第一個結點的指針p>next查找從第i個結點開始的第len個結點的算法修改為

  k=;q=p>next;∥q指向第一個被刪除結點
  while(q!=null && k<len)∥查找成功時q指向自i起的第len個結點
  {k++;q= q>next;}
  if(k<len) {printf(給的%d太大\nlen);exit();}

  .[題目分析] 在遞增有序的順序表中插入一個元素x首先應查找待插入元素的位置因順序表元素遞增有序采用折半查找法比順序查找效率要高查到插入位置後從此位置直到線性表尾依次向後移動一個元素位置之後將元素x插入即可

  void  Insert(ElemType A[]int size ElemType x)∥ A是有size個元素空間目前僅有num(num<size)個元素的線性表本算法將元素x插入到線性表中並保持線性表的有序性
  {low=;high=num;∥題目要求下標從開始
  while(low<=high)∥對分查找元素x的插入位置
  {mid=(low+high)/;
  if(A[mid]==x){low=mid+;break;}
  else if(A[mid]>x)high=mid ;else  low=mid+ ;
  }
  for(i=num;i>=low;i) A[i+]=A[i];∥元素後移
  A[i+]=x;∥將元素x插入
  }算法結束

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23338.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.