Browse Source

Fixed TLinkedList Remove().
Added array constructor.
More examples.

woollybah 6 years ago
parent
commit
e7e39e6ad0

+ 20 - 0
collections.mod/doc/tlinkedlist_contains.bmx

@@ -0,0 +1,20 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local cities:TLinkedList<String> = New TLinkedList<String>
+
+cities.AddLast("Shanghai")
+cities.AddLast("Beijing")
+cities.AddLast("Guangzhou")
+cities.AddLast("Shenzhen")
+cities.AddLast("Tianjin")
+cities.AddLast("Wuhan")
+
+For Local city:String = EachIn cities
+	Print city
+Next
+
+Print "~ncities.Contains(~qShenzhen~q) : " + cities.Contains("Shenzhen")
+Print "cities.Contains(~qChengdu~q) : " + cities.Contains("Chengdu")

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

@@ -0,0 +1,24 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local cities:TLinkedList<String> = New TLinkedList<String>
+
+cities.AddLast("Shanghai")
+cities.AddLast("Beijing")
+cities.AddLast("Guangzhou")
+cities.AddLast("Shenzhen")
+cities.AddLast("Tianjin")
+cities.AddLast("Wuhan")
+
+For Local city:String = EachIn cities
+	Print city
+Next
+
+Print "~ncities.Count() : " + cities.Count()
+
+Print "~ncities.Remove(~qTianjin~q) : " + cities.Remove("Tianjin")
+Print "cities.Remove(~qChengdu~q) : " + cities.Remove("Chengdu")
+
+Print "~ncities.Count() : " + cities.Count()

+ 30 - 0
collections.mod/doc/tlinkedlist_removefirst.bmx

@@ -0,0 +1,30 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local cities:TLinkedList<String> = New TLinkedList<String>
+
+cities.AddLast("Shanghai")
+cities.AddLast("Beijing")
+cities.AddLast("Guangzhou")
+cities.AddLast("Shenzhen")
+cities.AddLast("Tianjin")
+cities.AddLast("Wuhan")
+
+For Local city:String = EachIn cities
+	Print city
+Next
+
+Print "~ncities.Count() : " + cities.Count()
+
+Print "~ncities.RemoveFirst()"
+cities.RemoveFirst()
+
+Print ""
+
+For Local city:String = EachIn cities
+	Print city
+Next
+
+Print "~ncities.Count() : " + cities.Count()

+ 30 - 0
collections.mod/doc/tlinkedlist_removelast.bmx

@@ -0,0 +1,30 @@
+SuperStrict
+
+Framework brl.collections
+Import brl.standardio
+
+Local cities:TLinkedList<String> = New TLinkedList<String>
+
+cities.AddLast("Shanghai")
+cities.AddLast("Beijing")
+cities.AddLast("Guangzhou")
+cities.AddLast("Shenzhen")
+cities.AddLast("Tianjin")
+cities.AddLast("Wuhan")
+
+For Local city:String = EachIn cities
+	Print city
+Next
+
+Print "~ncities.Count() : " + cities.Count()
+
+Print "~ncities.RemoveLast()"
+cities.RemoveLast()
+
+Print ""
+
+For Local city:String = EachIn cities
+	Print city
+Next
+
+Print "~ncities.Count() : " + cities.Count()

+ 12 - 1
collections.mod/linkedlist.bmx

@@ -33,6 +33,17 @@ Public
 		End If
 	End Method
 
+	Rem
+	bbdoc: Creates a new #TLinkedList initialised by @array.
+	End Rem
+	Method New(array:T[])
+		If array Then
+			For Local element:T = EachIn array
+				AddLast(element)
+			Next
+		End If
+	End Method
+
 	Rem
 	bbdoc: Returns an iterator that iterates through the #TLinkedList.
 	End Rem
@@ -273,7 +284,7 @@ Public
 	bbdoc: Removes the first occurrence of @value from the #TLinkedList.
 	End Rem
 	Method Remove:Int(value:T)
-		Local node:TLinkedListNode<T>
+		Local node:TLinkedListNode<T> = Find(value)
 		If node Then
 			RemoveNode(node)
 			Return True