1+ import 'FileOperator.dart' ;
2+ import 'BST.dart' ;
3+ import 'AVLTree.dart' ;
4+ import 'RBTree.dart' ;
5+
6+
7+ void main () async {
8+
9+ print ("Pride and Prejudice" );
10+
11+ List words = await FileOperator .getFileString ('text2.txt' );
12+
13+ // words.sort();
14+
15+ // Test BST
16+ var now = new DateTime .now ();
17+ num startTime = now.millisecondsSinceEpoch;
18+
19+ BST <String , num > bst = BST ();
20+ for (String word in words) {
21+ if (bst.contains (word))
22+ bst.set (word, bst.get (word) + 1 );
23+ else
24+ bst.add (word, 1 );
25+ }
26+
27+ for (String word in words)
28+ bst.contains (word);
29+
30+ var endNow = new DateTime .now ();
31+ num endTime = endNow.millisecondsSinceEpoch;
32+
33+ double time = (endTime - startTime) / 1000.0 ;
34+ print ("BST: $time s" );
35+
36+ // Test AVL
37+ var startNow1 = new DateTime .now ();
38+ var startTime1 = startNow1.millisecondsSinceEpoch;
39+
40+ AVLTree <String , num > avl = AVLTree ();
41+ for (String word in words) {
42+ if (avl.contains (word))
43+ avl.set (word, avl.get (word) + 1 );
44+ else
45+ avl.add (word, 1 );
46+ }
47+
48+ for (String word in words)
49+ avl.contains (word);
50+
51+ var endNow1 = new DateTime .now ();
52+ var endTime1 = endNow1.millisecondsSinceEpoch;
53+
54+ double time3 = (endTime1 - startTime1) / 1000.0 ;
55+ print ("AVL: $time3 s" );
56+
57+ // Test BRTree
58+ var startNow2 = new DateTime .now ();
59+ var startTime2 = startNow2.millisecondsSinceEpoch;
60+
61+ RBTree <String , num > rb = RBTree ();
62+ for (String word in words) {
63+ if (rb.contains (word))
64+ rb.set (word, rb.get (word) + 1 );
65+ else
66+ rb.add (word, 1 );
67+ }
68+
69+ for (String word in words)
70+ avl.contains (word);
71+ var endNow2 = new DateTime .now ();
72+ var endTime2 = endNow2.millisecondsSinceEpoch;
73+
74+ double time2 = (endTime2 - startTime2) / 1000.0 ;
75+ print ("RBTree: $time2 s" );
76+
77+
78+ }
0 commit comments