summaryrefslogtreecommitdiffstats
path: root/tree.py
diff options
context:
space:
mode:
authorpnfisher <pnfisher>1999-08-17 15:11:19 +0000
committerpnfisher <pnfisher>1999-08-17 15:11:19 +0000
commitd8ad37b30feeaf286df5fae92f636a5a2da53623 (patch)
tree6a184a361d1e7bc21048bf607bfeeb95a2cdd194 /tree.py
parent2edf71e3abbe9af417a879109fb158e1f8475f04 (diff)
downloadanaconda-d8ad37b30feeaf286df5fae92f636a5a2da53623.tar.gz
anaconda-d8ad37b30feeaf286df5fae92f636a5a2da53623.tar.xz
anaconda-d8ad37b30feeaf286df5fae92f636a5a2da53623.zip
added
Diffstat (limited to 'tree.py')
-rw-r--r--tree.py16
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)
+