summaryrefslogtreecommitdiffstats
path: root/src/ntree.rs
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-05-21 07:58:47 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-05-21 07:58:47 -0400
commit14ca7b5fc15eb2618b46bde0cac85e37ebc9ebd9 (patch)
tree6c4864880bc54778122f1c0e4fa195c16cc064db /src/ntree.rs
parenta0a3b3974cab754c10a1517d82762b99482970ce (diff)
downloadsystemic4x-14ca7b5fc15eb2618b46bde0cac85e37ebc9ebd9.tar.gz
systemic4x-14ca7b5fc15eb2618b46bde0cac85e37ebc9ebd9.tar.bz2
systemic4x-14ca7b5fc15eb2618b46bde0cac85e37ebc9ebd9.zip
tacmap back as canvas. begin work on fleet scheduling
Diffstat (limited to 'src/ntree.rs')
-rw-r--r--src/ntree.rs44
1 files changed, 6 insertions, 38 deletions
diff --git a/src/ntree.rs b/src/ntree.rs
index 26c241c..5500649 100644
--- a/src/ntree.rs
+++ b/src/ntree.rs
@@ -7,32 +7,6 @@ pub struct NTreeNode<T>
}
-#[derive(Default, Clone)]
-pub struct NTree<T>
-{
- root: Option<NTreeNode<T>>
-}
-
-impl<T> NTree<T>
-{
- pub fn set_root_val(
- &mut self,
- val: T)
- {
- self.root = Some(NTreeNode { value: val, children: vec![] });
- }
-
- pub fn set_root(
- &mut self,
- node: NTreeNode<T>)
- {
- self.root = Some(node);
- }
-
- pub fn root(&self) -> &Option<NTreeNode<T>> { &self.root }
- pub fn root_mut(&mut self) -> &mut Option<NTreeNode<T>> { &mut self.root }
-}
-
impl<T> NTreeNode<T>
{
pub fn new(val: T)
@@ -49,12 +23,6 @@ impl<T> NTreeNode<T>
pub fn children(&self) -> &[NTreeNode<T>] { &self.children.as_slice() }
- pub fn as_tree(self)
- -> NTree<T>
- {
- NTree { root: Some(self) }
- }
-
pub fn insert_value(
&mut self,
val: T)
@@ -69,13 +37,13 @@ impl<T> NTreeNode<T>
self.children.push(subtree);
}
- pub fn insert_tree(
- &mut self,
- subtree: NTree<T>)
+ pub fn traverse_preorder(&self)
+ -> Vec<&T>
{
- match subtree.root {
- Some(subtree_root) => self.insert_node(subtree_root),
- None => { panic!("Tried to put null subtree") }
+ let mut result = vec![self.value()];
+ for child in &self.children {
+ result.extend(child.traverse_preorder().iter());
}
+ result
}
}