Использование класса LinkedList в SmallTalk? - PullRequest
3 голосов
/ 20 февраля 2010

Я не уверен, что полностью понимаю, как использовать класс LinkedList, предоставляемый в SmallTalk Visual Works. Я могу создать экземпляр класса, просто выполнив:

myList := LinkedList new.

Но как мне добавить узел. Я попытался создать экземпляр класса Link и установить значение, но оно не работает.

myLink := Link new.
myLink value: 3.

Я очень новичок в Smalltalk, и любая помощь будет принята с благодарностью!

Ответы [ 2 ]

4 голосов
/ 20 февраля 2010

Будучи новичком, лучше научитесь использовать OrderedCollection. Затем посмотрите на методы обоих классов и увидите сходства и различия. Вы увидите, что они по сути одинаковы, потому что вся разница заключается в производительности вставки и удаления элементов в середине коллекции. В OrderedCollection копируется вся коллекция, а в LinkedList только «указатели» адаптируются к вставленному узлу.

На практике LinkedList используется редко, потому что OrderedCollection достаточно хорош для большинства, если не для всех нужд.

3 голосов
/ 28 февраля 2010

То, как вы должны его использовать, это создание подклассов Link, например, добавление переменной экземпляра value и двух методов #value и #value:. Но, как сказал Янко, я не стал бы беспокоиться и просто использовал бы коллекцию OrderedCollection.

...