Skip to content

Commit d0275d4

Browse files
authored
Merge pull request #7 from linksplatform/issue-6-d8de5266ad68
Rename SzbTree to RecursiveSizeBalancedTree and NoRecurSzbTree to IterativeSizeBalancedTree
2 parents 49b0fa2 + 5b52f9e commit d0275d4

File tree

6 files changed

+29
-29
lines changed

6 files changed

+29
-29
lines changed

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ This library provides low-level tree and linked list data structure traits for t
66

77
## Overview
88

9-
`platform-trees` is a Rust implementation of tree and linked list methods used by the Links Platform. It provides generic traits that can be implemented for various storage backends, enabling efficient tree-based data structures with size-balanced binary (SZB) tree algorithms.
9+
`platform-trees` is a Rust implementation of tree and linked list methods used by the Links Platform. It provides generic traits that can be implemented for various storage backends, enabling efficient tree-based data structures with size-balanced tree algorithms.
1010

1111
## Features
1212

1313
### Tree Structures
14-
- **`SzbTree`** - Size-balanced binary tree trait with core operations:
14+
- **`RecursiveSizeBalancedTree`** - Base size-balanced binary tree trait with core operations:
1515
- Node navigation (`get_left`, `get_right`, `get_next`, `get_previous`)
1616
- Tree rotations (`left_rotate`, `right_rotate`)
1717
- Size management (`get_size`, `fix_size`, `inc_size`, `dec_size`)
1818
- Tree queries (`contains`, `get_leftest`, `get_rightest`)
1919

20-
- **`NoRecurSzbTree`** - Non-recursive size-balanced tree trait extending `SzbTree`:
20+
- **`IterativeSizeBalancedTree`** - Iterative size-balanced tree trait extending `RecursiveSizeBalancedTree`:
2121
- Iterative `attach` and `detach` operations
2222
- Avoids stack overflow on deep trees
2323
- Maintains tree balance during modifications
@@ -50,10 +50,10 @@ Add the dependency to your `Cargo.toml`:
5050
platform-trees = "0.1.0-beta.1"
5151
```
5252

53-
### Example: Implementing SzbTree
53+
### Example: Implementing RecursiveSizeBalancedTree
5454

5555
```rust
56-
use platform_trees::{SzbTree, NoRecurSzbTree};
56+
use platform_trees::{IterativeSizeBalancedTree, RecursiveSizeBalancedTree};
5757
use platform_data::LinkType;
5858

5959
// Define your tree node storage
@@ -68,8 +68,8 @@ struct Node {
6868
// ... your data
6969
}
7070

71-
// Implement the SzbTree trait for your storage type
72-
impl SzbTree<usize> for MyTreeStorage {
71+
// Implement the RecursiveSizeBalancedTree trait for your storage type
72+
impl RecursiveSizeBalancedTree<usize> for MyTreeStorage {
7373
unsafe fn get_mut_left_reference(&mut self, node: usize) -> *mut usize {
7474
&mut self.nodes[node].left
7575
}
@@ -119,8 +119,8 @@ impl SzbTree<usize> for MyTreeStorage {
119119
}
120120
}
121121

122-
// Implement NoRecurSzbTree to get attach/detach operations
123-
impl NoRecurSzbTree<usize> for MyTreeStorage {}
122+
// Implement IterativeSizeBalancedTree to get attach/detach operations
123+
impl IterativeSizeBalancedTree<usize> for MyTreeStorage {}
124124
```
125125

126126
### Example: Implementing LinkedList
@@ -179,8 +179,8 @@ impl AbsoluteCircularLinkedList<usize> for MyListStorage {}
179179

180180
| Trait | Description |
181181
|-------|-------------|
182-
| `SzbTree<T>` | Base trait for size-balanced binary trees with rotation and navigation operations |
183-
| `NoRecurSzbTree<T>` | Extension trait providing iterative attach/detach without recursion |
182+
| `RecursiveSizeBalancedTree<T>` | Base trait for size-balanced binary trees with rotation and navigation operations |
183+
| `IterativeSizeBalancedTree<T>` | Extension trait providing iterative attach/detach without recursion |
184184

185185
### List Traits
186186

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ pub use lists::{
1313
RelativeLinkedList,
1414
};
1515

16-
pub use trees::{NoRecurSzbTree, SzbTree};
16+
pub use trees::{IterativeSizeBalancedTree, RecursiveSizeBalancedTree};

src/tests.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
//! Comprehensive tests for 100% code coverage of platform-trees
22
33
use crate::{
4-
AbsoluteCircularLinkedList, AbsoluteLinkedList, LinkedList, LinkType, NoRecurSzbTree,
5-
RelativeCircularLinkedList, RelativeLinkedList, SzbTree,
4+
AbsoluteCircularLinkedList, AbsoluteLinkedList, IterativeSizeBalancedTree, LinkType,
5+
LinkedList, RecursiveSizeBalancedTree, RelativeCircularLinkedList, RelativeLinkedList,
66
};
77

88
// =============================================================================
@@ -147,15 +147,15 @@ impl RelativeLinkedList<usize> for TestRelativeList {
147147

148148
impl RelativeCircularLinkedList<usize> for TestRelativeList {}
149149

150-
/// A tree node structure for testing SzbTree
150+
/// A tree node structure for testing SizeBalancedTree
151151
#[derive(Debug, Clone, Copy, Default)]
152152
struct TreeNode {
153153
left: usize,
154154
right: usize,
155155
size: usize,
156156
}
157157

158-
/// A simple SzbTree implementation for testing
158+
/// A simple SizeBalancedTree implementation for testing
159159
struct TestTree {
160160
nodes: Vec<TreeNode>,
161161
}
@@ -168,7 +168,7 @@ impl TestTree {
168168
}
169169
}
170170

171-
impl SzbTree<usize> for TestTree {
171+
impl RecursiveSizeBalancedTree<usize> for TestTree {
172172
unsafe fn get_mut_left_reference(&mut self, node: usize) -> *mut usize {
173173
&mut self.nodes[node].left
174174
}
@@ -218,7 +218,7 @@ impl SzbTree<usize> for TestTree {
218218
}
219219
}
220220

221-
impl NoRecurSzbTree<usize> for TestTree {}
221+
impl IterativeSizeBalancedTree<usize> for TestTree {}
222222

223223
// =============================================================================
224224
// LinkType trait tests
@@ -773,11 +773,11 @@ mod relative_circular_linked_list_tests {
773773
}
774774

775775
// =============================================================================
776-
// SzbTree trait tests
776+
// SizeBalancedTree trait tests
777777
// =============================================================================
778778

779779
#[cfg(test)]
780-
mod szb_tree_tests {
780+
mod size_balanced_tree_tests {
781781
use super::*;
782782

783783
#[test]
@@ -1149,11 +1149,11 @@ mod szb_tree_tests {
11491149
}
11501150

11511151
// =============================================================================
1152-
// NoRecurSzbTree trait tests
1152+
// IterativeSizeBalancedTree trait tests
11531153
// =============================================================================
11541154

11551155
#[cfg(test)]
1156-
mod no_recur_szb_tree_tests {
1156+
mod iterative_size_balanced_tree_tests {
11571157
use super::*;
11581158

11591159
#[test]
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::{LinkType, SzbTree};
1+
use crate::{LinkType, RecursiveSizeBalancedTree};
22

3-
pub trait NoRecurSzbTree<T: LinkType>: SzbTree<T> {
3+
pub trait IterativeSizeBalancedTree<T: LinkType>: RecursiveSizeBalancedTree<T> {
44
unsafe fn attach(&mut self, root: *mut T, node: T) {
55
if *root == T::funty(0) {
66
self.set_size(node, T::funty(1));

src/trees/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
mod no_recur_szb_tree;
2-
mod szb_tree;
1+
mod iterative_size_balanced_tree;
2+
mod recursive_size_balanced_tree;
33

4-
pub use no_recur_szb_tree::NoRecurSzbTree;
5-
pub use szb_tree::SzbTree;
4+
pub use iterative_size_balanced_tree::IterativeSizeBalancedTree;
5+
pub use recursive_size_balanced_tree::RecursiveSizeBalancedTree;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::LinkType;
22

3-
pub trait SzbTree<T: LinkType> {
3+
pub trait RecursiveSizeBalancedTree<T: LinkType> {
44
unsafe fn get_mut_left_reference(&mut self, node: T) -> *mut T;
55

66
unsafe fn get_mut_right_reference(&mut self, node: T) -> *mut T;

0 commit comments

Comments
 (0)