#include <conio.h>
#include <iostream>
using namespace std;
#define data sinhvien
#define NULLDATA NULL
typedef struct tagsinhvien
{
char hoten[20];
float diem;
char lop[20];
}sinhvien;
void nhapsv(sinhvien &sv)
{
cout<<"nhap vao ten cua ban: ";
cin>>sv.hoten;
cout<<"nhap vao diem cua ban: ";
cin>>sv.diem;
cout<<"nhap vao lop ban dang hoc: ";
cin>>sv.lop;
}
void xuatsv(sinhvien sv)
{
cout<<"thong tin :";
cout<<" "<<sv.hoten;
cout<<" "<<sv.diem;
cout<<" "<<sv.lop;
}
typedef struct tagnode
{
data info;
tagnode * next;
}NODE;
typedef struct taglist
{
NODE* phead;
}LIST;
NODE* getnode(data x)
{
sinhvien sv;
nhapsv(sv);
NODE* q=new NODE;
if(q==NULL)
{
cout<<"ko du bo nho";
return NULL;
}
q->info=x;
q->next=NULL;
return q;
}
NODE* inserthead(LIST &mylist,data x)
{
NODE* ele=getnode(x);
if(ele==NULL)
return NULL;
if(mylist.phead==NULL)
mylist.phead=ele;
else
{
ele->next=mylist.phead;
mylist.phead=ele;
}
return ele;
}
data removefrist(LIST &mylist)
{
NODE *q;
data x;
//data x=NULL;
if(mylist.phead!=NULL)
{
q=mylist.phead;
x=q->info;
mylist.phead=mylist.phead->next;
delete q;
}
return x;
}
char isempty(LIST & mylist)
{
if(mylist.phead==NULL)//stack rong
return 1;
return 0;
}
//them mot phan tu p vao stack
void push(LIST &mylist,data x)
{
inserthead(mylist,x);
}
//trich huy phan tu o dinh stack
data pop(LIST &mylist)
{
data x;
if(isempty(mylist))
//return NULL;
exit(1);
x=removefrist(mylist);
return x;
}
NODE* top(LIST &mylist)
{
if(isempty(mylist)) return NULL;
return mylist.phead;
}
//khoi tao node
void inlist(LIST &mylist)
{
mylist.phead=NULL;
}
void printlist(LIST mylist)
{
sinhvien sv;
nhapsv(sv);
NODE* q;
q=mylist.phead;
while(q!=NULL)
{
//cout<<" "<<q->info;
xuatsv(q->info);
q=q->next;
}
}
int main()
{
LIST mylist;
sinhvien sv;
nhapsv(sv);
//NODE* q=getnode(sv);
inlist(mylist);
push(mylist,sv);
//pop(mylist);
//top(mylist);
printlist(mylist);
//inserthead(mylist,x);
//removefrist(mylist,x);
return 0;
}
Bạn đang đọc truyện trên: Truyen2U.Pro