显示链接列表

时间:2015-03-04 02:11:08

标签: 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';
}

1 个答案:

答案 0 :(得分:1)

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

我想我们可能需要你的推/弹才能正确测试。

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