Как бы я пошел по созданию этого списка вдвойне связанного списка?

StackOverflow https://stackoverflow.com//questions/23048551

  •  21-12-2019
  •  | 
  •  

Вопрос

В настоящее время учусь о структурах данных и связанных списках. Я пытаюсь создать вдвойне связанный список, и я не уверен, как сделать это. Данные «узла» я хотел бы быть классом, который я уже создал. Все, что я могу найти в Интернете об связанных списках, они просто используют целочисленные значения, и я не уверен, как лучше включить другие классы.

Что я думаю, я бы сделал это ....

У меня есть абстрактный класс «аккаунт». Тогда классы «сбережения» и «Проверка» получены из аккаунта. Я хотел бы иметь данные «узла», чтобы быть типом учетной записи, возможно, указатель базового класса, поэтому можно использовать как «сбережения», так и «проверка».

Что я не уверен, что в том, что в моем классе «Узел» Мои частные данные - указатель базового класса «Указатель» на саму аккаунт, NectPointer и предыдущий поставщик. Класс «Список» будет управлять связанным списком и создать новые узлы. Но как тогда я бы получить доступ к функциям-членам учетной записи?

Мне было интересно, каковы лучший способ подойти к этому? Должен ли я добавить GetTers к классу «узел», который вызовите учетные записи Gotter функций для получения данных о учетной записи? Или это будет лучше просто сделать «сбережения» и «проверять» сами узлы, и добавить следующий указатель и предыдущий указатель на участников частных данных?

Это было полезно?

Решение

Вы должны создать универсальный вдвойне списка

template <class T> class List{
    T value;
    Node& next; //Or Node* whatever you choose
    Node& prev;
    public:
     ...
 };
.

Таким образом, ваш список будет служить как оно должно - в виде списка. Теперь, если вам нужен список учетных записей, просто заявляйте один

List<Account> allAccounts = new List<Account>(); //assuming there's a default c'tor
.

И если вам нужно иметь некоторые отношения между учетной записью, а остальными, вы можете использовать наследование.

Тот факт, что вы делаете свой список универсальными и не ограничены любым типом, сделают ваш код более элегантным, чистым и иметь смысл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top