Singly-linked list/Element definition: Difference between revisions

m
imported>Chinhouse
No edit summary
m (→‎{{header|Wren}}: Minor tidy)
 
(2 intermediate revisions by one other user not shown)
Line 983:
 
=={{header|MiniScript}}==
Implementing linked lists in MiniScript is an academic exercise. For practical applications, use the built-in list type.
<syntaxhighlight lang="miniscript">Node = {"item": null, "next": null}
Node = {"item": null, "next": null}
Node.init = function(item)
node = new Node
newNodenode.item = item
return node
end function
 
LinkedList = {"head": null, "tail": null}
LinkedList.addappend = function(item)
newNode = new Node.init(item)
newNode.item = item
if self.head == null then
self.head = newNode
Line 997 ⟶ 1,003:
end if
end function
 
LinkedList.insert = function(aftItem, item)
newNode = Node.init(item)
cursor = self.head
while cursor.item != aftItem
print cursor.item
cursor = cursor.next
end while
newNode.next = cursor.next
cursor.next = newNode
end function
 
LinkedList.traverse = function
cursor = self.head
while cursor != null
// do stuff
print cursor.item
cursor = cursor.next
end while
end function
 
test = new LinkedList
test.append("A")
test.append("B")
test.insert("A","C")
 
test.traverse
</syntaxhighlight>
 
Line 1,985 ⟶ 2,018:
{{libheader|Wren-llist}}
The Node class in the above module is the element type for the LinkedList class which is a generic singly-linked list. The latter is implemented in such a way that the user does not need to deal directly with Node though for the purposes of the task we show below how instances of it can be created and manipulated.
<syntaxhighlight lang="ecmascriptwren">import "./llist" for Node
 
var n1 = Node.new(1)
9,482

edits