双链表2值c++

doubly linked list 2 values c++

本文关键字:c++ 链表      更新时间:2023-10-16

我需要用c++为学校做一个扑克游戏。我创建了一个类Card and Deck。我需要制作所有牌的双重链表,每张牌都有花色和秩(值)。我如何将两个属性(花色和等级)附加到双链表中的一张牌。

双链表是一种结构体(结构体或类),具有指向前一个和下一个链接的指针。除了这些指针之外,还可以添加任意数据,这些数据可以被视为有效负载。你可以放任何你想要的数据。下面是一个例子:

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;
}

花色和排名是牌的属性,与链表无关。因此,这些属性最好封装到Card类中。

如果您已经这样做了,并且还有不清楚的地方,请扩展您的问题