Поскольку Squeak является средой с открытым исходным кодом, мы можем видеть реализацию структур данных, таких как OrderedCollection>>addFirst
:
addFirst: newObject
"Add newObject to the beginning of the receiver. Answer newObject."
firstIndex = 1 ifTrue: [self makeRoomAtFirst].
firstIndex := firstIndex - 1.
array at: firstIndex put: newObject.
^ newObject
и OrderedCollection>>removeFirst
:
removeFirst: n
"Remove first n object into an array"
| list |
list := Array new: n.
1 to: n do: [:i |
list at: i put: self removeFirst].
^ list
Тогда я могу манипулировать структурой данных стека, правильно?
Мне сообщили, что Smalltalk не имеет структуры указателей; хотя языки, такие как Java, также не имеют структуры указателей, не как язык сценариев, он должен реализовывать некоторую фундаментальную структуру данных, такую как дерево, диаграмма (см. Сценарии: программирование на более высоком уровне)
для 21-го века ), затем поднимите еще один вопрос:
Как Smalltalk реализует древовидную структуру данных?