01/10/2018, 00:19
Lỗi Stack bằng danh sách liên kết trong C++!
Em viết để in ra danh sách bằng stack nhưng lỗi chỗ pRun , em không hiểu tại sao bị lỗi chỗ đó , anh chị nào giúp em , em cảm ơn !
#include<iostream>
using namespace std;
struct Node {
int data;
Node *next;
};
struct Stack {
Node *top;
int count;
};
bool isEmptyStack(Stack *s)
{
if (!s)
return true;
if (s->top == NULL || s->count == 0)
return true;
else
return false;
}
Node *Push(Stack *s, int data) // them Node vao dau danh sach
{
if (!s)
return NULL;
Node *nNode = new Node;
nNode->data = data;
nNode->next = NULL;
if (isEmptyStack(s)) {
s->top = nNode;
s->count++;
} else {
nNode->next = s->top;
s->top = nNode;
}
s->count++;
return s->top;
}
void Print(Stack *s)
{
Node *pRun = NULL;
if (!s)
return;
else{
Node *pRun = s->top;
while (pRun != NULL) {
cout << pRun->data;
pRun = pRun->next;
}
cout << endl;
}
}
int main()
{
Stack *s = new Stack;
Node *top = NULL;
int count = 0;
Push(s, 3);
Push(s, 4);
Print(s);
system("pause");
return 0;
}
Bài liên quan
Lỗi xảy ra là lỗi gì? Bạn mô tả cụ thể hơn đi?
Theo mình đoán bạn thiếu
else
sau câu lệnhreturn
.Vấn đề là nằm trong 2 lệnh ở hàm main() dưới đây
Là do 2 dòng trên không khởi tạo được Stack rỗng nên 2 biến thành viên top, count của s kiểu Stack đã không được gán giá trị thích hợp do đó khi sử dụng hàm Print() in ra các phần tử trong stack sẽ có lỗi.
Khởi tạo struct nên được thực hiện như ví dụ bên dưới
Mình thiếu
else
chỗ đó nhưng lỗi của mình như thế này !em cảm ơn anh ! Em fix được rồi !