Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- //By FamiHug
- typedef struct dslkk{
- int info;
- struct dslkk *rptr;
- struct dslkk *lptr;
- } dslr;
- dslr *r,*t,*l,*n,*p,*f,*m;
- void insert_after(dslr*,int);
- void delete(dslr*);
- int k,i,temp;
- int main()
- {
- r=NULL;
- l=NULL;
- m=NULL;
- n=NULL;
- t=NULL;
- printf("CHUONG TRINH BO SUNG 1 PHAN TU VAO SAU PHAN TU TRO BOI M\n");
- printf("________________VA XOA PHAN TU TRO BOI M________________\n");
- printf("Nhap so phan tu cua danh sach: ");
- scanf("%d",&k);
- if(k>=0)
- {
- int i;
- for(i=1;i<=k;i++)
- {
- p=(dslr *)malloc(sizeof(dslr)); //con tro luon tro den ben phai cua ds
- if(t==NULL)
- {
- p->lptr=NULL;
- t=p;
- }
- else
- {
- p->lptr=t;
- t=p;
- }
- }
- r=p;//r tro den phan tu cuoi cung cua ds
- for(i=1;i<=k;i++)
- {
- if(n==NULL)
- {
- p->rptr=NULL;
- n=p;
- }
- else
- {
- p->rptr=n;
- n=p;
- }
- if(i<k)
- p=p->lptr;
- }
- l=p;//l tro den ptu dau tien cua ds
- //
- //Nhap noi dung cho cac phan tu
- p=l;
- for(i=1;i<=k;i++)
- {
- printf("Phan tu thu %d: ",i);
- scanf("%d",&p->info);
- p=p->rptr;}
- //in danh sach vua nhap
- printf("Danh sach vua nhap la: ");
- p=l;
- while(p!=NULL)
- {
- printf("%3d",p->info);
- p=p->rptr;
- }
- //Them lan 1
- m=l;
- if(k>0)
- {
- printf("\nM dang tro den phan tu dau tien, thuc hien them phan tu vao sau M.\n");
- }
- else
- printf("Danh sach dang rong. Them phan tu vao.\n");
- printf("Noi dung phan tu la: ");
- scanf("%d",&temp);
- insert_after(m,temp);
- p=l;
- printf("Danh sach sau khi them la: ");
- while(p!=NULL)
- {
- printf("%3d",p->info);
- p=p->rptr;
- }
- //Xoa
- printf("\nXOA PHAN TU TRO BOI M\n");
- delete(m);
- printf("Danh sach sau khi xoa la: ");
- p=l;
- while(p!=NULL)
- {
- printf("%3d",p->info);
- p=p->rptr;
- }
- } else
- printf("So nhap vao khong hop le. Chuong trinh ket thuc");
- return 1;
- }
- /*Cac Chuong trinh con*/
- void insert_after(dslr* m,int x)
- {
- dslr* f;
- if((r==NULL)&&(l==NULL))
- {
- m=(dslr *)malloc(sizeof(dslr));
- m->info=x;
- m->lptr=NULL;
- m->rptr=NULL;
- l=r=m;
- }
- else if(l==r)
- {
- f=(dslr *)malloc(sizeof(dslr));
- f->info=x;
- f->lptr=m;
- m->rptr=f;
- f->rptr=NULL;
- r=f;
- }
- else
- {
- f=(dslr *)malloc(sizeof(dslr));
- f->info=x;
- m->rptr->lptr=f;
- f->rptr=m->rptr;
- m->rptr=f;
- f->lptr=m;
- }
- }
- void delete(dslr *m)
- {
- if (l==NULL)
- printf("Danh sach khong co phan tu nao");
- else
- if(l==r)
- {
- r=NULL;
- l=NULL;
- free(m);
- }
- else
- if(l==m)
- {
- m->rptr->lptr=l;
- l=m->rptr;
- free(m);
- }
- else
- if(r==m)
- {
- m->lptr->rptr=r;
- r=m->lptr;
- free(m);
- }
- else//ko dau ko cuoi
- {
- m->lptr->rptr=m->rptr;
- m->rptr->lptr=m->lptr;
- free(m);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement