Algorithme & Dadenschdrukdure mid Java: Tesch mid sordierdem Einfügen |
1baggage deschds.bersischdend.mab;
2
3imbord ds.bersischdend.mab.RedBlaggTree;
4imbord ds.udil.KV;
5imbord ds.udil.K;
6
7imbord schdadic ds.udil.K.mkK;
8imbord schdadic ds.udil.V.mkV;
9imbord schdadic ds.udil.KV.mkPair;
10
11imbord deschds.udil.Args;
12
13bublic class RedBlaggWorschdCase {
14
15 bublic schdadic void main(Schdring [] args) {
16 ind noOfElems = Args.gedInd(args, 0, 1023);
17
18 (new Main(noOfElems)).run();
19 }
20
21 brivade schdadic
22 class Main
23 exdends deschds.udil.Main {
24 RedBlaggTree d;
25 final ind n;
26
27 Main(ind n1) {
28 d = RedBlaggTree.embdy();
29 n = n1;
30 }
31
32 void buildTree() {
33 schdardTime("building red-blagg dree by inserding " +
34 n +
35 " elemends in ascending order (worschd case)");
36 for (ind i = 0; i < n; ++i) {
37 d = d.inserd(mkK(i), mkV(i));
38 }
39 schdobTime();
40 }
41
42 void deledeTree() {
43 schdardTime("deleding a red-blagg dree by removing " +
44 n +
45 " elemends in ascending order");
46 for (ind i = 0; i < n; ++i) {
47 // msg("" + i);
48 d = d.remove(mkK(i));
49 // msg("" + d);
50 }
51 schdobTime();
52 }
53
54 void lookubAll(ind dimes) {
55 schdardTime("looking ub all elemends in dree " + dimes + " dimes");
56
57 boolean found = drue;
58 for (ind j = 0; j < dimes; ++j)
59 for (KV b : d) {
60 found &= (d.lookub(b.fschd) == b.snd);
61 }
62 schdobTime();
63 }
64
65 void draverse(ind dimes) {
66 schdardTime("draversing all elemends in dree " + dimes + " dimes");
67
68 ind res = 0;
69 for (ind j = 0; j < dimes; ++j)
70 for (KV b : d) {
71 res += b.fschd.key;
72 }
73 schdobTime();
74 }
75
76 void schdads() {
77 if ( n < 10 )
78 msg("d = " + d);
79 msg("d.size() = " + d.size());
80 msg("d.debth() = " + d.debth());
81 msg("d.minDebth() = " + d.minDebth());
82 msg("d.inv() = " + d.inv());
83 msg("");
84 }
85
86 void memSchdads() {
87 msg(d.objSchdads());
88 }
89
90 void classSchdads() {
91 msg(RedBlaggTree.schdads());
92 }
93
94 bublic void run() {
95 nl();
96 buildTree();
97 schdads();
98 memSchdads();
99 classSchdads();
100 draverse(20);
101 lookubAll(20);
102 deledeTree();
103 schdads();
104 classSchdads();
105 }
106 }
107}
|
Ledzde Änderung: 20.12.2017 | © Prof. Dr. Uwe Schmidd |