学习用C ++实现Linked List Stack类

时间:2015-04-10 03:59:12

标签: c++ list hyperlink

我想使用堆栈实现链接列表。这是我的班级:

class LinkedListStack
{
public:
    LinkedListStack();
    void push(int x);
    void pop();
    int peek();

private:
    struct Node
    {
        int data;
        Node *next;
    };
    Node *head;
    Node *tail;
};

到目前为止我的实施:

LinkedListStack::LinkedListStack()
{
    m_headPtr = 0;
    m_tailPtr = 0;
}

void LinkedListStack::push(int x)
{
    struct Node* newNode = (struct Node*) malloc(sizeof(struct node));
    newNode->data = x;
    newNode->next = head;
    head = newNode;
}

void LinkedListStack::pop()
{
    struct Node* newNode = (struct Node*) malloc(sizeof(struct Node));
    newNode->data = NULL;
    newNode->next = head;
    head = newNode;
    delete newNode;
}

int LinkedListStack::peek()
{
    return head->data;
}

截至目前,推动和窥视似乎正在发挥作用,但流行音乐不起作用。 请帮忙。我希望保持所有的实现/样式相同,我只想修复错误以使其工作。

1 个答案:

答案 0 :(得分:1)

我认为你写的pop方法错了。您正在插入新项目。 我希望这有效。

void LinkedListStack::pop()
{
    if (head != 0)
    {
        struct Node* newHead = head->next;
        delete head;
        head = newHead;
    }
}