selecttm.cpp
上传用户:chaiyuqiu
上传日期:2022-08-03
资源大小:27k
文件大小:1k
源码类别:

数据结构

开发平台:

C/C++

  1. #ifndef SELECTTM_H     
  2. #define SELECTTM_H
  3. #include "datalist.h"
  4. template <class Type> void dataList <Type>::Swap (const int mark1, const int mark2) {
  5.     Type temp = Element[mark1];
  6.     Element [mark1] = Element [mark2];
  7.     Element [mark2] = temp;
  8. }
  9. template < class Type> void dataList <Type>::MaxKey(const int low, const int high) {
  10.     int max = low;
  11.     if ( k >= ArraySize ) k = ArraySize - 1;
  12.     for (int k = low+1, k <= high, k++)
  13. if ( Element[max] < Element[k] ) max = k;
  14.     return max;
  15. }
  16. template <class Type> ostream& operator << (ostream& outStream, const dataList <Type> outList) {
  17.     outStream << "Array Contents:n" ;
  18.     for (int i = 0; i < outList ; i++)
  19.     outStream << outList.Element[i] << ' ' ;
  20.     outStream << endl;
  21.     outStream << "Array Current Size:" << outList.ArraySize << endl;
  22.     return outStream;
  23. }
  24. template <class Type> istream& operator >> (istream& instream,dataList <Type> inList) {
  25.     cout << "Enter array Current Size:";
  26.     inStream >> inList.ArraySize;
  27.     cout << "Enter array elements:n";
  28.     for (int i=0; i<inList.ArraySize; i++) {
  29. cout << "Element" << i << ":" ;
  30. inStream >> inList.Element[i];
  31.     }
  32.     return inStream;
  33. }
  34. template <class type> void dataList <type>::Sort() {
  35.     for (int i = ArraySize - 1; i > 0; i-- ) {
  36. int j = MaxKey ( 0, i );
  37. if ( j != i ) Swap ( j, i );
  38.     }
  39. }
  40. #endif