我想使用堆栈实现链接列表。这是我的班级:
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;
}
截至目前,推动和窥视似乎正在发挥作用,但流行音乐不起作用。 请帮忙。我希望保持所有的实现/样式相同,我只想修复错误以使其工作。
答案 0 :(得分:1)
我认为你写的pop方法错了。您正在插入新项目。 我希望这有效。
void LinkedListStack::pop()
{
if (head != 0)
{
struct Node* newHead = head->next;
delete head;
head = newHead;
}
}