двусвязный список 2 значений c ++ - PullRequest
0 голосов
/ 19 декабря 2011

Мне нужно сделать игру в покер для школы на с ++. Я сделал класс карты и колоды. Мне нужно составить двусвязный список всех карт, и у каждой карты есть масть и ранг (значение). Как я могу прикрепить 2 атрибута (масти и ранга) к Карте в двусвязном списке.

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Двойной связанный список - это структура (структура или класс) с указателями на предыдущую и следующую ссылку.В дополнение к этим указателям вы можете добавить произвольные данные, которые можно считать полезной нагрузкой.Там вы можете поместить любые данные, которые вы хотите.Вот пример:

class Card {
    public:
       // Constructor
       Card(int rank, int suit, Card* prev=NULL) 
       {
           if (prev)
           {
             m_prev = prev; 
             prev->m_next = this;
           }
           m_prev = prev;
           m_rank = rank;
           m_suit = suit;
       }
       // Accessors
       int Rank() { return m_rank; }
       int Suit() { return m_suit; }
       Card* Prev() { return m_prev; }
       Card* Next() { return m_next; }

    private:
       int m_rank, m_suit;
       Card *m_prev, *m_next;
}
1 голос
/ 19 декабря 2011

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

Если вы уже делаете это, и что-то остается неясным, пожалуйста, расширьте свой вопрос.

...