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

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

2013-11-15 15:12:40  來源: 數據結構 

  .錯誤有以下幾處

  ()過程參數沒有類型說明)出錯條件判斷缺少OR(i+k>last+

  ()刪除元素時FOR循環應正向不應用反向DOWNTO)count沒定義

  低效體現在兩處

  ()刪除k個元素時不必一個一個元素前移而應一次前移k個位置

  ()last指針不應一次減而應最後一次減k

  正確的高效算法如下

  const  m=
  TYPE ARR=ARRAY[m] OF integer
  PROCEDURE delk(VAR A:ARRVAR last:integer;ikinteger)
  {從數組A[last]中刪除第i個元素起的k個元素m為A的上限}
  VAR countinteger
  BEGIN
  IF(i<)OR(i>last)OR(k<)OR(last>m)OR(i+k>last+
  THEN write(error
  ELSE[FOR count= i+k TO last DO  A[countk]=A[count]
  last=lastk]
  END

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


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