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

MultiPlatform

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