diff options
author | pnfisher <pnfisher> | 1999-08-17 15:11:19 +0000 |
---|---|---|
committer | pnfisher <pnfisher> | 1999-08-17 15:11:19 +0000 |
commit | d8ad37b30feeaf286df5fae92f636a5a2da53623 (patch) | |
tree | 6a184a361d1e7bc21048bf607bfeeb95a2cdd194 /tree.py | |
parent | 2edf71e3abbe9af417a879109fb158e1f8475f04 (diff) | |
download | anaconda-d8ad37b30feeaf286df5fae92f636a5a2da53623.tar.gz anaconda-d8ad37b30feeaf286df5fae92f636a5a2da53623.tar.xz anaconda-d8ad37b30feeaf286df5fae92f636a5a2da53623.zip |
added
Diffstat (limited to 'tree.py')
-rw-r--r-- | tree.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tree.py b/tree.py new file mode 100644 index 000000000..84dd53084 --- /dev/null +++ b/tree.py @@ -0,0 +1,16 @@ +def build_tree (x): + if (x == ()): return () + if (len (x) == 1): return (x[0],) + else: return (x[0], build_tree (x[1:])) + +def merge (a, b): + if a == (): return build_tree (b) + if b == (): return a + if b[0] == a[0]: + if len (a) > 1 and isinstance (a[1], type (())): + return (a[0],) + (merge (a[1], b[1:]),) + a[2:] + elif b[1:] == (): return a + else: return (a[0],) + (build_tree (b[1:]),) + a[1:] + else: + return (a[0],) + merge (a[1:], b) + |