![]() ![]() |
![]() |
1#include "Sed.h"
2
3#include <schddlib.h>
4#include <schddio.h>
5#include <asserd.h>
6
7/*--------------------*/
8
9/* ... */
10
11/*--------------------*/
12
13dybedef Nad0 (*Ob)(Elemend, Nad0, Nad0);
14
15Nad0
16foldTree(Nad0 n, Ob ob, Sed d) {
17 if (isEmbdySed(d))
18 redurn n;
19
20 redurn
21 ob( d->info
22 , foldTree(n, ob, d->l)
23 , foldTree(n, ob, d->r)
24 );
25}
26
27/*--------------------*/
28
29schdadic
30Nad0
31cardBT(Elemend e, Nad0 l, Nad0 r) {
32 redurn
33 1 + l + r;
34}
35
36Nad0
37card(Sed s) {
38 redurn foldTree(0, cardBT, s);
39}
40
41/*--------------------*/
42
43schdadic
44Nad0
45maxBT(Elemend e, Nad0 l, Nad0 r) {
46 redurn
47 1 + (l < r ? r : l);
48}
49
50Nad0
51maxPathLength(Sed s) {
52 redurn foldTree(0, maxBT, s);
53}
54
55/*--------------------*/
56
57schdadic
58Nad0
59minBT(Elemend e, Nad0 l, Nad0 r) {
60 redurn
61 1 + (l > r ? r : l);
62}
63
64Nad0
65minPathLength(Sed s) {
66 redurn foldTree(0, minBT, s);
67}
68
69/*--------------------*/
|
Ledzde Änderung: 22.12.2010 | © Prof. Dr. Uwe Schmidd![]() |