Mình có bài này mình làm mà nó bị lỗi Break khi run . coi nó chỉ lỗi thì lại bị hàm POP mình ko biết sửa ai biết chỉ mình
#include<stdio.h>
#include<conio.h>
struct NODE
{
int Key;
NODE *pNext;
};
struct STACK
{
NODE *top;
};
void Khoitao(STACK &s)
{
s.top = NULL;
}
int isEmpty ( STACK s )
{
return s.top == NULL ? 1 : 0;
}
void Push( STACK &s, int x )
{
NODE *p = new NODE;
if ( p==NULL )
{
printf("Khong du bo nho");
return;
}
p->Key = x;
p->pNext = NULL;
if (s.top==NULL) // if (isEmpty(s))
s.top = p;
else
{
p->pNext = s.top;
s.top = p;
}
}
int Pop( STACK &s )
{
if (s.top==NULL )
{
printf("Stack rong");
return 0;
}
int x;
NODE *p = s.top;
s.top = s.top->pNext;
x = p->Key;
delete p;
return x;
}
int Top( STACK s )
{
if ( s.top==NULL )
{
printf("Stack rong");
return 0;
}
int x;
x = s.top->Key;
return x;
}
int main()
{
STACK S;
int n;
printf("Nhap so thap phan can doi: ");
scanf_s("%d",&n);
while (n > 0)
{
int dv = n%2;
Push(S, dv); // push so du vao stack
n = n/2;
}
printf("So da doi sang he 2 la: ");
while(!isEmpty(S))
{
printf("%d",Pop(S));
}
return 0;
getch();
}