danh sach lien ket don

1 1.5K 24
danh sach lien ket don

Đang tải... (xem toàn văn)

Thông tin tài liệu

• #include<stdio.h> • #include<conio.h> • #include<ctype.h> • #include<string.h> • typedef struct SINHVIEN • { char ten[20]; • int msv; • }SV; • typedef struct SinhvienNode • { • SV Info; • SinhvienNode *pNext; • }SVNode; • typedef struct SinhvienList • { • SinhvienNode *pHead; • SinhvienNode *pTail; • }LIST; • void makenull(LIST*L) • { • L->pHead=L->pTail=NULL; • } • void nhapsv(SV *x); • void nhapds(LIST *L) • { SV x; SinhvienNode *p; • char tl; • do {p=new SinhvienNode; • p->pNext=NULL; • nhapsv(&x); • strcpy(p->Info.ten,x.ten); • p->Info.msv=x.msv; • if(L->pTail==NULL) • { • L->pHead=p; • L->pTail=p; • } • else • { • L->pTail->pNext=p; • L->pTail=p; • } • printf("\nban co tiep tuc khong(c/k)?"); • tl=getch();tl=toupper(tl); • }while(tl=='C'); • } • void nhapsv(SV *x) • { int ma; • printf("\nnhapSV X\n"); • printf("hoten: ");gets(x->ten); • printf("ma:");scanf("%d",&ma); • x->msv=ma; • fflush(stdin); • } • void hienthids(LIST L) • { SinhvienNode *p; • p=L.pHead;int i=0; • while(p!=NULL) • { • printf("\n%3d %-20s %3d",++i,p->Info.ten,p->Info.msv); • p=p->pNext; • } • } • void AddTail(LIST *L,SV x) • { SinhvienNode *p;p=new SinhvienNode; • p->pNext=NULL; • p->Info=x; • if(L->pHead==NULL) • L->pHead=L->pTail=p; • else • {//1 noi duoi cua pTail vao p • L->pTail->pNext=p; • //2 chuyen pTail ve p • L->pTail=p; • } • } • void AddHead(LIST *L,SV x) • { SinhvienNode *p;p=new SinhvienNode; • p->pNext=NULL; • p->Info=x; • if(L->pHead==NULL) • L->pHead=L->pTail=p; • else • {//1 noi duoi cua pTail vao p • p->pNext=L->pHead; • //2 chuyen pTail ve p • L->pHead=p; • } • } • void InsertAfter(LIST *L,SinhvienNode *q,SV x) • { • SinhvienNode *p; • p=new SinhvienNode;p->Info=x; • p->pNext=NULL; • if(q==NULL) • { • if(L->pTail==NULL) • { • L->pTail=L->pHead=p; • } • else{ • L->pTail->pNext=p; • L->pTail=p; • } • } • else{//tim thay nut co ma n vao • //co ma = ma • p->pNext=q->pNext; //chen vao L phan tu co • //Infor la x sau q neu khong • //phai thi chen vao duoi danh sach • q->pNext=p; • } • } • SinhvienNode *findNode(LIST L,int ma) • { • SinhvienNode *p; • p=L.pHead; • while(p!=NULL) • if(p->Info.msv==ma) • break; • else • p=p->pNext; • return(p); • } • void main() • { • LIST L; SV x; int ma; • makenull(&L); SinhvienNode *q; • nhapds(&L); • hienthids(L); • nhapsv(&x); • printf("\nnhap ma cua q:");scanf("%d",&ma); • q=findNode(L,ma); //tra lai dia chi cua nut • InsertAfter(&L,q,x); • hienthids(L); • /*nhapsv(&x); • AddTail(&L,x); • hienthids(L);nhapsv(&x); • AddHead(&L,x); • hienthids(L);nhapsv(&x); • printf("\n nhap ma sv q:");scanf("%d",&ma); • AddAfter(&q,ma,x); • */ • getch(); • } . vao L phan tu co • //Infor la x sau q neu khong • //phai thi chen vao duoi danh sach • q->pNext=p; • } • } • SinhvienNode *findNode(LIST L,int ma) • {

Ngày đăng: 28/07/2013, 01:26

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan