home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c100 / 1.ddi / OOPWLD.ZIP / BINTREE / FULLTEST.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-11  |  1.2 KB  |  46 lines

  1. #include "fullbin.hpp"  // full-functioned binary tree
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <ctype.h>
  6.  
  7. char * test[] = {
  8.   "l","e","s","c","h","o","w","b","d",
  9.   "g","j","m","q","u","y","a","f",
  10.   "i","k","n","p","r","t","v","x","z"
  11. };
  12.  
  13. main() {
  14.   tree * T = new tree;
  15.   for(int i = 0; i < sizeof(test)/sizeof(test[0]); i++)
  16.     T->add(test[i]);
  17.   while(1) {
  18.     {
  19.       clrscr();
  20.       screenmap screen(T->depth() + 1,80);
  21.       T->place(screen, 0, 40, 40);
  22.       screen.display();
  23.       puts("\ninorder traversal:");
  24.       T->inorder_traverse();
  25.     }
  26.     printf("\nbalance = %d\n", (int)T->heavy());
  27.     switch(printf(
  28.         "l:left rotate, r:right rotate, "
  29.         "b:balance, a:rebalance, s: start over,"
  30.         "q:quit "), tolower(getch())) {
  31.       case 'l' : rotate_left(&T); break;
  32.       case 'r' : rotate_right(&T); break;
  33.       case 'b' : balance(&T); break;
  34.       case 'a' : rebalance(&T); break;
  35.       case 's' : delete T;  // start over
  36.                  T = new tree;
  37.                  for(int i = 0; 
  38.                      i < sizeof(test)/sizeof(test[0]); 
  39.                      i++)
  40.                    T->add(test[i]);
  41.                  break;
  42.       case 'q' : exit(0);
  43.     }
  44.   }
  45. }
  46.