瀏覽代碼

Fixed TSet FirstNode, LastNode NPE on empty set.
Added more TSet examples.

woollybah 6 年之前
父節點
當前提交
596af25719

+ 21 - 0
collections.mod/doc/tset_clear.bmx

@@ -0,0 +1,21 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local data1:Int[] = [1, 2, 3, 4, 5, 6]
+
+Local set:TSet<Int> = New TSet<Int>(data1)
+
+Print "Set : " + set.Count() + " elements"
+For Local num:Int = EachIn set
+	Print num
+Next
+
+Print "~nset.Clear()"
+set.Clear()
+
+Print "~nSet : " + set.Count() + " elements"
+For Local num:Int = EachIn set
+	Print num
+Next

+ 28 - 0
collections.mod/doc/tset_complement.bmx

@@ -0,0 +1,28 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local data1:Int[] = [3, 4, 5, 6, 8, 9]
+Local data2:Int[] = [1, 2, 3, 4]
+
+Local a:TSet<Int> = New TSet<Int>(data1)
+Local b:TSet<Int> = New TSet<Int>(data2)
+
+Print "Set A"
+For Local num:Int = EachIn a
+	Print num
+Next
+
+Print "~nSet B"
+For Local num:Int = EachIn b
+	Print num
+Next
+
+Print "~nA.Complement(B)"
+a.Complement(b)
+
+Print "~nSet A"
+For Local num:Int = EachIn a
+	Print num
+Next

+ 17 - 0
collections.mod/doc/tset_contains.bmx

@@ -0,0 +1,17 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local data1:Int[] = [1, 2, 3, 4, 5, 6]
+
+Local set:TSet<Int> = New TSet<Int>(data1)
+
+Print "Set:"
+For Local num:Int = EachIn set
+	Print num
+Next
+
+Print "~nset.Contains(5) : " + set.Contains(5)
+
+Print "~nset.Contains(8) : " + set.Remove(8)

+ 31 - 0
collections.mod/doc/tset_overlaps.bmx

@@ -0,0 +1,31 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local data1:Int[] = [3, 4, 5, 6, 8, 9]
+Local data2:Int[] = [1, 2, 3, 4]
+Local data3:Int[] = [2, 10, 11]
+
+Local a:TSet<Int> = New TSet<Int>(data1)
+Local b:TSet<Int> = New TSet<Int>(data2)
+Local c:TSet<Int> = New TSet<Int>(data3)
+
+Print "Set A"
+For Local num:Int = EachIn a
+	Print num
+Next
+
+Print "~nSet B"
+For Local num:Int = EachIn b
+	Print num
+Next
+
+Print "~nSet C"
+For Local num:Int = EachIn C
+	Print num
+Next
+
+Print "~nB.Overlaps(A) : "  + b.OverLaps(a)
+Print "~nC.Overlaps(A) : "  + c.OverLaps(a)
+Print "~nC.Overlaps(B) : "  + c.OverLaps(b)

+ 24 - 0
collections.mod/doc/tset_remove.bmx

@@ -0,0 +1,24 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local data1:Int[] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+Local set:TSet<Int> = New TSet<Int>(data1)
+
+Print "Set:"
+For Local num:Int = EachIn set
+	Print num
+Next
+
+Print "~nset.Remove(4) : 1"
+Print set.Remove(4)
+
+Print "~nset.Remove(4) : 0"
+Print set.Remove(4)
+
+Print "~nSet:"
+For Local num:Int = EachIn set
+	Print num
+Next

+ 2 - 2
collections.mod/set.bmx

@@ -505,7 +505,7 @@ Private
 
 	Method FirstNode:TSetNode<T>()
 		Local node:TSetNode<T> = root
-		While node.leftNode <> Null
+		While node And node.leftNode
 			node = node.leftNode
 		Wend
 		Return node
@@ -513,7 +513,7 @@ Private
 
 	Method LastNode:TSetNode<T>()
 		Local node:TSetNode<T> = root
-		While node.rightNode <> Null
+		While node And node.rightNode
 			node = node.rightNode
 		Wend
 		Return node