Я пытаюсь использовать простые функции Push, Pop и Show в стеке в качестве реализации связанного списка. Думаю, функция Push работает правильно, но у меня возникают проблемы с Show и Pop. Всякий раз, когда я использую функцию Pop, я получаю только один результат, и в следующий раз, когда он говорит: «Stack Empty !!». Думаю, я делаю логическую ошибку. Пожалуйста, помогите мне с этим. Я использую Turbo C++ 4.5. Я размещаю код ниже. Заранее спасибо!Связанный список реализации стека в C++
#include<iostream.h>
#include<conio.h>
#include<process.h>
struct node
{
int data;
node *link;
};
node *temp, *top;
void PUSH()
{
temp=new node;
cout<<"\nEnter data item:";
cin>>temp->data;
temp->link=NULL;
if(top==NULL)
{
temp->link=top;
top=temp;
}
}
void POP()
{
if(top==NULL)
{
cout<<"\nEmpty";
return;
}
temp=top;
top=top->link;
cout<<"\nDeleted value is : "<<temp->data;
temp->link=NULL;
delete(temp);
}
void SHOW()
{
if(top==NULL)
{
cout<<"\nEmpty!!";
return;
}
while(temp!=NULL)
{
cout<<temp->data<<endl;
temp=temp->link;
}
}
void main()
{ int ch;
do{
cout<<"\nEnter your choice";
cout<<"\n1.Push\n2.Pop\n3.Show\n4.Exit";
cin>>ch;
switch(ch)
{
case 1: PUSH();
break;
case 2: POP();
break;
case 3: SHOW();
break;
case 4: exit(0);
break;
}
}while(ch!=4);
getch();
}
Это не выглядит, как вы инициализированная 'top' быть' 'NULL' в узле * темпе * сверху;', но вы проверили, если 'top' был 'NULL' в' PUSH() ' –
Пожалуйста, прочитайте о ООП (у вас это есть с C++). Также используя стандартную библиотеку - это уже сделано для вас с шаблоном –
Почему вы используете древний компилятор? –