Singly-linked list/Element definition: Difference between revisions

m
imported>Arakov
m (→‎{{header|Wren}}: Minor tidy)
 
(3 intermediate revisions by one other user not shown)
Line 981:
<syntaxhighlight lang="mathematica">Append[{}, x]
-> {x}</syntaxhighlight>
 
=={{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.init = function(item)
node = new Node
node.item = item
return node
end function
 
LinkedList = {"head": null, "tail": null}
LinkedList.append = function(item)
newNode = Node.init(item)
if self.head == null then
self.head = newNode
self.tail = self.head
else
self.tail.next = newNode
self.tail = self.tail.next
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>
 
=={{header|Modula-2}}==
Line 1,968 ⟶ 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,476

edits