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

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

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

  )H(A(aaB(bC(ccx)

  HEAD(TAIL(HEAD(H)))=a

  ()略

  五算法設計題

  [題目分析]本題是在向量D內插入元素問題首先要查找插入位置數據x插入到第i個數據組的末尾即是第i+個數據組的開始而第i(≤i≤n)個數據組的首地址由數組s(即數組元素s[i])給出其次數據x插入後還要維護數組s以保持空間區D和數組s的正確的相互關系

  void Insert(int s[]datatype D[]xint im)
  //在m個元素的D數據區的第i個數據組末尾插入新數據x第i個數據組的首址由數組s給出
  {if(i<1|| i>n){printf(參數錯誤exit(0)
  if(i==n) D[m]=x  // 在第n個數據組末尾插入元素
  else{for(j=m;j>=s[i+];j)D[j+]=D[j]; // 第i+1個數據組及以後元素後移
  D[s[i+]]=x;  // 將新數據x插入
  for(j=i+;j<=n;j++) s[j]++;  // 維護空間區D和數組s的的關系
  }  //結束元素插入
  m++;    //空間區D的數據元素個數增
  }// 算法Insert結束

  [算法討論] 數據在空間區從下標開始最後一個元素的下標是m設空間區容量足夠大未考慮空間溢出問題數組s隨機存數而向量D數據插入引起數組元素移動時間復雜度是O(n)

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


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