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

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

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

  .[題目分析] 本題要求將鏈表中數據域值最小的結點移到鏈表的最前面首先要查找最小值結點將其移到鏈表最前面實質上是將該結點從鏈表上摘下(不是刪除並回收空間)再插入到鏈表的最前面
  LinkedList  delinsert(LinkedList  list)∥list是非空線性鏈表鏈結點結構是(datalink)data是數據域link是鏈域本算法將鏈表中數據域值最小的那個結點移到鏈表的最前面
  {p=list>link;∥p是鏈表的工作指針
  pre=list;∥pre指向鏈表中數據域最小值結點的前驅
  q=p;∥q指向數據域最小值結點初始假定是第一結點
  while (p>link!=null)
  {if(p>link>data<q>data){pre=p;q=p>link;}∥找到新的最小值結點;
  p=p>link;
  }
  if (q!=list>link)∥若最小值是第一元素結點則不需再操作
  {pre>link=q>link;∥將最小值結點從鏈表上摘下;
  q>link= list>link;∥將q結點插到鏈表最前面
  list>link=q;
  }
  }∥算法結束

  [算法討論] 算法中假定list帶有頭結點否則插入操作變為q>link=list;list=q

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


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