d2_dic.c
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:2k
开发平台:

MultiPlatform

  1. #include "LEDA/d2_dictionary.h"
  2. main()
  3. {
  4.   double k1, l1, r1;
  5.   string k2("....."), l2, r2;
  6.   int i, j;
  7.   dic2_item it;
  8.   d2_dictionary<double,string,int> t;
  9.   int MAX = read_int("number of elements = ");
  10.   dic2_item* items = new dic2_item[MAX];
  11.   for (i=0; i<MAX; i++) {
  12.     k1 = 1+rand_int(0,9899)/100.0;
  13.     for( j=0; j<k2.length(); j++ )
  14.       k2[j] = rand_int(97,122);
  15.     items[i] = t.insert( k1, k2, i );
  16.   }
  17. // t.print();
  18.   forall_dic2_items( it, t )
  19.     cout << t.inf(it) << ": (" << t.key1(it) << "," 
  20.          << t.key2(it) << ")" << endl;
  21.   newline;
  22.   cout << "Enter 0 to stop queries!";
  23.   newline;
  24.   while( (l1=read_real(" left(1) = ")) && 
  25.          (r1=read_real("right(1) = ")) ) {
  26.     l2 = read_string(" left(2) = "); r2 = read_string("right(2) = ");
  27.     list<dic2_item> res = t.range_search( l1, r1, l2, r2 );
  28.     forall( it, res )
  29.       cout << t.inf(it) << ": (" << t.key1(it) << "," 
  30.         << t.key2(it) << ")" << endl;
  31.   }
  32.   newline;
  33.   cout << "min_key1: " << t.inf(t.min_key1()) << " (" 
  34.        << t.key1(t.min_key1()) << "," << t.key2(t.min_key1()) 
  35.        << ")" << endl;
  36.   cout << "min_key2: " << t.inf(t.min_key2()) << " (" 
  37.        << t.key1(t.min_key2()) << "," << t.key2(t.min_key2()) 
  38.        << ")" << endl;
  39.   cout << "max_key1: " << t.inf(t.max_key1()) << " (" 
  40.        << t.key1(t.max_key1()) << "," << t.key2(t.max_key1()) 
  41.        << ")" << endl;
  42.   cout << "max_key2: " << t.inf(t.max_key2()) << " (" 
  43.        << t.key1(t.max_key2()) << "," << t.key2(t.max_key2()) 
  44.        << ")" << endl;
  45.   print_statistics();
  46.   for (i = 0; i < MAX; i++) {
  47.     t.del( t.key1(items[i]), t.key2(items[i]) );
  48.   }
  49.   delete items;
  50.   return 0;
  51. }