Дополнительно
Как создать список на языке c++?
Как создать список в языке C++? Мне нужно, чтобы он создавал связанный список. Как мне это сделать? Есть ли хорошие учебники или примеры?
29
8
Я так понимаю, вы знаете, что c++ уже имеет связанный список класса, и вы хотите реализовать свой собственный, потому что вы хотите научиться это делать.
Во-первых, читать https://stackoverflow.com/questions/392397/arrays-whats-the-point , который содержит хороший ответ на основные структуры данных. Затем подумайте о том, как смоделировать их в C++:
В принципе, что's все, что вам нужно реализовать список! (очень простой в одно). Но он не имеет никаких абстракций, необходимо связать элементы за руку:
Теперь у вас есть связанный список узлов, все выделенные в стеке:
Следующий шаг-написать класс-оболочку
список
, что указывает на начальный узел, и позволяет добавлять необходимые узлы, отслеживание главе списка (ниже очень упрощенный):Следующий шаг-создание списка шаблон, так что вы можете вещи и другие ценности (не только целые).
Если вы знакомы с умными указателями, то можно заменить на сырые указатели использовать смарт-указатели. Часто я нахожу, что люди рекомендуют смарт-указатели для пускателей. Но на мой взгляд, вы должны сначала понять, зачем нужен смарт-указатели, а затем использовать их. Но это требует, что сначала надо разобраться сырые указатели. Иначе, вы используете какую-то волшебный инструмент, не зная, зачем он нужен.
На самом деле следует использовать стандартный класс List. Если, конечно, это не домашнее задание, или вы хотите узнать, как списки реализованы в STL.
В google можно найти множество простых учебников, например этот. Если вы хотите узнать, как работают связанные списки "под капотом", попробуйте поискать примеры/учебники по спискам на C, а не на C++.
Если вы собираетесь использовать СТД::list, то вам нужно передать параметр типа:
Если вы хотите знать, как работают списки, я рекомендую погуглить по некоторым С/C++ учебники, чтобы получить представление о этой теме. Следующим этапом будет обучение достаточно на C++ создать класс список, и, наконец, класс шаблона списка.
Если у вас есть вопросы, задавайте сюда.
Зачем изобретать колесо. Достаточно использовать контейнер списка STL.
Подробнее...
Я'м предполагаем, что это домашнее задание вопрос, поэтому вы, вероятно, хотите пойти здесь. Он имеет объяснение, связные списки, дает хорошие псевдокод, а также реализацию на C++ можно скачать.
Я'd рекомендую для чтения через объяснение и понимание псевдокод перед слепо, использующие осуществления. Это тема, что вы действительно должны понимать, в глубину если вы хотите продолжать в CS.
Повышение ptr_list
http://www.boost.org/doc/libs/1_37_0/libs/ptr_container/doc/ptr_list.html
НТН
Создать список, используя шаблоны C++
я.е
Затем вы можете написать код вроде:
Тип T не является динамически во время выполнения.Это только для компиляции.
Для полного примера нажмите здесь.
Для C++ учебник шаблоны нажмите здесь.
Мы уже в 21 веке!!! Не пытайтесь реализовать уже существующие структуры данных. Попробуйте использовать существующие структуры данных.
Используйте библиотеку STL или Boost