В настоящее время я работаю над реализацией структуры данных стека с использованием связанных списков на C++. Я могу скомпилировать все до тех пор, пока не проверю свой метод «stack.push», когда получаю сообщение об ошибке с отладочной ошибкой, которое у меня не было, где достаточно знаний о том, как начать исправление. Я только начал здесь, так что я не могу добавлять изображения, по-видимому, но в общем он говорит:Использование связанных списков для реализации стека, утверждение отладки не выполнено
Debug Assertion Failed!
Program...ual studio 2013/....~
File:f:/dd/vctools/crt/crtw32/misc/dbgdel.cpp
Line: 52
Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse
и вот мои коды: Stack.h
#ifndef _STACK_H
#define _STACK_H
#include "LList.h"
typedef int ItemType;
class Stack{
public:
Stack();
~Stack();
int size() { return size_; }
void push(ItemType x);
ItemType pop();
ItemType top() { return top_; }
private:
ItemType top_;
void copy(const Stack &source);
int size_;
LList items_;
};
#endif _STACK_H
stack.cpp:
#include "Stack.h"
Stack::Stack()
{
size_ = 0;
ItemType top_ = NULL;
}
void Stack::push(ItemType x)
{
items_.append(x);
size_ += 1;
ItemType top_ = x;
}
ItemType Stack::pop()
{
ItemType top_ = size_ - 1;
size_ -= 1;
return items_.pop();
}
Stack::~Stack()
{
items_.~items_();
}
Ошибка возникает после написания тестового кода, который назначает стек, а затем пытается нанести номер на стек. Любая помощь будет оценена, и я приношу свои извинения, если есть какие-либо проблемы с форматированием моего сообщения.
Хорошо, из обоих ваших ответов я, очевидно, должен задуматься над этим ... Я попытаюсь найти лучшее решение – Skillapop