c++ - 显示链表

标签 c++ list linked-list

我是 C++ 的新手,我正在制作一个链表。尝试显示链接列表的内容时,我一直遇到问题。它要么显示随机数,从中删除项目,要么完全崩溃。我不确定如何修复它,或者问题是否来自程序的其他地方,但我不确定是从哪里来的,因为程序的其余部分运行良好。

class CarNode {
public:
    CarNode() : m_pNext(0), m_ticketNum(0) { }
    ~CarNode();
    CarNode(CarNode &): m_pNext(0), m_ticketNum(0) { }
    void SetNext(CarNode* p){m_pNext=p;}
    void SetTicketNum(int tN){m_ticketNum=tN;}
    CarNode *GetNext(void){return(m_pNext);}
    int GetTicketNum(void){return(m_ticketNum);}

    private:
    int m_ticketNum;
    CarNode *m_pNext;
};


class CAlley {
public:
    CAlley () : m_pTop(0), mSize(0), mMaxSize(MAXSIZE) { }
    ~CAlley () {}
    CAlley (CAlley &):m_pTop(0), mSize(0), mMaxSize(MAXSIZE) { }
    int Park(int);
    void Retrieve(int,CAlley *);
    void Terminate();
    void Display();

private:
    void SetTop(CarNode *p){m_pTop=p;}
    bool Empty(){return ((mSize==0) ? true : false);}
    bool Full() {return ((mSize==MAXSIZE) ? true : false);}
    int Push(CarNode *);
    CarNode * Pop();
    CarNode *m_pTop;
    int mSize;
    int mMaxSize;
};


void CAlley::Display()
{
    cout << "Alley A:\t";
    CarNode * pCurr = m_pTop;
    while (pCurr != NULL)
    {
        cout << pCurr->GetTicketNum();
        if(pCurr->GetNext()!=NULL)
            cout<< '\t';
        pCurr=pCurr->GetNext();

    }
    cout << '\n';
}

最佳答案

我可能在与您不同的设置上运行,但是将您的指针设置为 (0) 实际上是否将它们设置为 NULL?如果不是,您可能想明确地这样做。

我认为我们可能需要您的 push/pop 才能正确测试。

顺便说一句,我把它写得很好,可以在 codepad.org 上测试 - http://codepad.org/C15VzSKT `

关于c++ - 显示链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28845562/

相关文章:

c - 如何使用用户输入对链接列表进行排序?

c++ - ofstream ifilestream 并使用 cin 获取字符数组?

c++ - 如果我在同一语句中使用预增量和后增量会怎样?

python - 合并单词对列表中的第一个单词,具体取决于这些对中的第二个单词

c - C程序中使用链表时出错

c - 为什么这个特定的代码会抛出异常?

c++ - 使用在另一个 header 中定义的结构

c++ - 从目录 C++ 中包含

list - Scala 整数列表列表

Python 组合列表——保留相对顺序