//Viết bằng Microsoft Visual studio 6.0
#include "stdio.h"
#include "conio.h"
#include "process.h"
struct NhanVien
{
char hoten[31];
int tuoi;
int thamnien;
};
struct NODE
{
NhanVien nv;
NODE* next;
};
//Danh sach LIST duoc quan ly boi 2 nut : nut dau va nut cuoi
struct LIST
{
NODE* head;//nut dau danh sach
NODE* tail;//nut cuoi danh sach
};
void KhoiDong(LIST &l)//Khoi tao gia tri rong cho nut dau tien
{
l.head=l.tail=NULL;//va duong nhien luc nay nut dau cung la nut cuoi
}
NODE* Getnode(NhanVien &nv)// Lay nv duoc nhap tu ban phim
{
NODE* node=new NODE;
if(node==NULL)
{
printf("Khong du bo nho!");exit(1);
}
node->nv=nv;//gan nhan vien duoc nhap tu ban phim vao cho node->nv : thuc te la gan gia tri cho nv cua node
node->next=NULL;
return node;
}
void NhapNhanVien(NhanVien &nv)
{
flushall();
printf("Nhap ho ten : ");
gets(nv.hoten);
printf("\nNhap tuoi : ");
scanf("%d",&nv.tuoi);
printf("\nNhap tham nien : ");
scanf("%d",&nv.thamnien);
}
void ThemDau(LIST &l,NODE* node)
{
//NODE* p;
if(l.head==NULL)
{
l.head=node;
l.head->next=NULL;
}
else
{
node->next=l.head;
l.head=node;
}
}
void ThemCuoi(LIST &l,NODE* node)
{
if(l.head==NULL)
{
l.head=node;
l.tail=l.head;
}
else
{
l.tail->next=node;
l.tail=node;
}
}
void NHAPLIST(LIST &l)
{
int n;
printf("Nhap so node : ");
scanf("%d",&n);
for(int i=0;i {
printf("\nNhap node thu %i :\n",i);
NhanVien nv;
NhapNhanVien(nv);
NODE* node=Getnode(nv);
ThemCuoi(l,node);
}
}
void XuatNhanVien(NhanVien nv)
{
printf("ho ten : %s\n",nv.hoten);
printf("Tham nien : %d",nv.thamnien);
printf("\nTuoi : %d\n",nv.tuoi);
}
void XuatLIST(LIST l)
{
int i=0;
for(NODE* p=l.head;p;p=p->next)
{
if(p->nv.tuoi<40 && p->nv.thamnien>10)
{
printf("\n--------------------Nhan vien thu %d : \n",i);
XuatNhanVien(p->nv);
}
i++;
}
}
void main()
{
LIST l;
KhoiDong(l);
NHAPLIST(l);
XuatLIST(l);
getch();
}