Skip to content

Commit 1c9ecde

Browse files
committed
set count
1 parent 9ffeab5 commit 1c9ecde

File tree

4 files changed

+6
-25
lines changed

4 files changed

+6
-25
lines changed

src/Advanced.Algorithms/DataStructures/Tree/AvlTree.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class AVLTree<T> : BSTBase<T>, IEnumerable<T> where T : IComparable
1414

1515
internal AVLTreeNode<T> Root { get; set; }
1616

17-
public int Count { get; private set; }
17+
public int Count => Root == null ? 0 : Root.Count;
1818

1919
/// <param name="enableNodeLookUp">Enabling lookup will fasten deletion/insertion/exists operations
2020
/// at the cost of additional space.</param>
@@ -41,7 +41,6 @@ public AVLTree(IEnumerable<T> sortedKeys, bool enableNodeLookUp = false)
4141
Root = (AVLTreeNode<T>)ToBST(nodes);
4242
recomputeHeight(Root);
4343
assignCount(Root);
44-
Count = nodes.Length;
4544
}
4645

4746

@@ -81,12 +80,12 @@ public void Insert(T value)
8180
{
8281
nodeLookUp[value] = Root;
8382
}
84-
Count++;
83+
8584
return;
8685
}
8786

8887
insert(Root, value);
89-
Count++;
88+
9089
}
9190

9291
/// <summary>
@@ -158,7 +157,6 @@ public void Delete(T value)
158157
nodeLookUp.Remove(value);
159158
}
160159

161-
Count--;
162160
}
163161

164162

src/Advanced.Algorithms/DataStructures/Tree/BST.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class BST<T> : BSTBase<T>, IEnumerable<T> where T : IComparable
1212
{
1313
internal BSTNode<T> Root { get; set; }
1414

15-
public int Count { get; private set; }
15+
public int Count => Root == null ? 0 : Root.Count;
1616

1717
public BST() { }
1818

@@ -26,7 +26,6 @@ public BST(IEnumerable<T> sortedKeys) : this()
2626
var nodes = sortedKeys.Select(x => new BSTNode<T>(null, x)).ToArray();
2727
Root = (BSTNode<T>)ToBST(nodes);
2828
assignCount(Root);
29-
Count = nodes.Length;
3029
}
3130

3231
/// <summary>
@@ -67,13 +66,10 @@ internal BSTNode<T> InsertAndReturnNewNode(T value)
6766
if (Root == null)
6867
{
6968
Root = new BSTNode<T>(null, value);
70-
Count++;
7169
return Root;
7270
}
7371

7472
var newNode = insert(Root, value);
75-
Count++;
76-
7773
return newNode;
7874
}
7975

@@ -86,13 +82,11 @@ public void Insert(T value)
8682
if (Root == null)
8783
{
8884
Root = new BSTNode<T>(null, value);
89-
Count++;
9085
return;
9186
}
9287

9388
var newNode = insert(Root, value);
9489
newNode.UpdateCounts(true);
95-
Count++;
9690
}
9791

9892
//worst O(n) for unbalanced tree
@@ -148,7 +142,6 @@ public void Delete(T value)
148142

149143
var deleted = delete(Root, value);
150144
deleted.UpdateCounts(true);
151-
Count--;
152145
}
153146

154147
//worst O(n) for unbalanced tree

src/Advanced.Algorithms/DataStructures/Tree/SplayTree.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ namespace Advanced.Algorithms.DataStructures
1111
public class SplayTree<T> : BSTBase<T>, IEnumerable<T> where T : IComparable
1212
{
1313
internal SplayTreeNode<T> Root { get; set; }
14-
15-
public int Count { get; private set; }
16-
14+
public int Count => Root == null ? 0 : Root.Count;
1715
public SplayTree() { }
1816

1917
/// <summary>
@@ -27,7 +25,6 @@ public SplayTree(IEnumerable<T> collection) : this()
2725
var nodes = collection.Select(x => new SplayTreeNode<T>(null, x)).ToArray();
2826
Root = (SplayTreeNode<T>)ToBST(nodes);
2927
assignCount(Root);
30-
Count = nodes.Length;
3128
}
3229

3330
/// <summary>
@@ -70,13 +67,11 @@ public void Insert(T value)
7067
if (Root == null)
7168
{
7269
Root = new SplayTreeNode<T>(null, value);
73-
Count++;
7470
return;
7571
}
7672

7773
var newNode = insert(Root, value);
7874
splay(newNode);
79-
Count++;
8075
}
8176

8277
//O(log(n)) always
@@ -129,7 +124,6 @@ public void Delete(T value)
129124
}
130125

131126
delete(Root, value);
132-
Count--;
133127
}
134128

135129
//O(log(n)) worst O(n) for unbalanced tree

src/Advanced.Algorithms/DataStructures/Tree/TreapTree.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class TreapTree<T> : BSTBase<T>, IEnumerable<T> where T : IComparable
1212
{
1313
private Random rndGenerator = new Random();
1414
internal TreapTreeNode<T> Root { get; set; }
15-
public int Count { get; private set; }
15+
public int Count => Root == null ? 0 : Root.Count;
1616

1717
public TreapTree() { }
1818

@@ -26,7 +26,6 @@ public TreapTree(IEnumerable<T> collection) : this()
2626
ValidateCollection(collection);
2727
var nodes = collection.Select(x => new TreapTreeNode<T>(null, x, rndGenerator.Next())).ToArray();
2828
Root = (TreapTreeNode<T>)ToBST(nodes);
29-
Count = nodes.Length;
3029
assignCount(Root);
3130
heapify(Root);
3231
}
@@ -70,14 +69,12 @@ public void Insert(T value)
7069
if (Root == null)
7170
{
7271
Root = new TreapTreeNode<T>(null, value, rndGenerator.Next());
73-
Count++;
7472
return;
7573
}
7674

7775
var newNode = insert(Root, value);
7876

7977
heapify(newNode);
80-
Count++;
8178
}
8279

8380
//O(log(n)) always
@@ -130,7 +127,6 @@ public void Delete(T value)
130127
}
131128

132129
delete(Root, value);
133-
Count--;
134130
}
135131

136132
//O(log(n)) worst O(n) for unbalanced tree

0 commit comments

Comments
 (0)