30/09/2018, 16:51
lỗi trong stack
Mình bị lỗi chỗ hàm intialize_stack
#include<iostream>
#include<stdlib.h>
using namespace std;
struct nhan_vien{
char ten[100];
int tuoi;
char que[100];
};
struct node{
nhan_vien x;
struct node * next;
};
typedef struct {
node top;
}stack;
void intialize_stack(stack *s){
s->top=NULL;
}
int stack_empty(stack *s){
return(s==NULL);
}
nhan_vien nhap(nhan_vien y){
cout<<"nhap vao ten nhan vien:"<<endl;
cin.ignore();
cin.getline(y.ten,100);
cout<<"nhap vao tuoi nhan vien:"<<endl;
cin>>y.tuoi;
cout<<"nha vao que quan nhan vien:"<<endl;
cin.ignore();
cin.getline(y.que,100);
return y;
}
node *input(nhan_vien y){
node *p;
p=new node;
p->x=y;
p->next=NULL;
return p;
}
void push(stach *s, nhan_vien y){
node *p;
p=input(y);
p->next=s->top;
s->top=p;
return;
}
nhan_vien pop(stack *s){
node *p;
if(stack_empty(s)){
cout<<"hang doi rong"<<endl;
return 0;
}
else{
p=s->top;
s->top=s->top->next;
return p->x;
}
}
void show_stack(stack *s){
if(stack_empty(s)){
cout<<"hang doi rong"<<endl;
return ;
}
else{
pop(s);
while(pop(s)){
cout<<"ten:"<<pop(s).ten<<endl;
cout<<"tuoi:"<<pop(s).tuoi<<endl;
cout<<"que:"<<pop(s).que<<endl;
}
}
}
void chuong_trinh(){
stack *s;
intialize_stack(s);
nhan_vien y,x;
nhap(y);
push(s,y);
nhap(x);
push(s,x);
show_stack(s);
}
main(){
chuong_trinh();
}
Bài liên quan
có thể chỉ rõ lỗi cho mình không?
Bạn sai hàm Pop và show_stack ở hàm main bạn phải cấp phát stack *s = new stack;