Advertisement
Guest User

ThemBotPhanTu_dsLR_FamiHug

a guest
Nov 23rd, 2010
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.00 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //By FamiHug
  4. typedef struct dslkk{
  5.     int info;
  6.     struct dslkk *rptr;
  7.     struct dslkk *lptr;
  8. } dslr;
  9.  
  10. dslr *r,*t,*l,*n,*p,*f,*m;
  11. void insert_after(dslr*,int);
  12. void delete(dslr*);
  13. int k,i,temp;
  14.  
  15. int main()
  16. {
  17.     r=NULL;
  18.     l=NULL;
  19.     m=NULL;
  20.     n=NULL;
  21.     t=NULL;
  22.  
  23.  
  24.     printf("CHUONG TRINH BO SUNG 1 PHAN TU VAO SAU PHAN TU TRO BOI M\n");
  25.     printf("________________VA XOA PHAN TU TRO BOI M________________\n");
  26.     printf("Nhap so phan tu cua danh sach: ");
  27.     scanf("%d",&k);
  28.  
  29.     if(k>=0)
  30.     {
  31.     int i;
  32.  
  33.     for(i=1;i<=k;i++)
  34.     {
  35.         p=(dslr *)malloc(sizeof(dslr)); //con tro luon tro den ben phai cua ds
  36.  
  37.         if(t==NULL)
  38.         {
  39.             p->lptr=NULL;
  40.             t=p;
  41.         }
  42.         else
  43.         {
  44.             p->lptr=t;
  45.             t=p;
  46.         }
  47.     }
  48.  
  49.     r=p;//r tro den phan tu cuoi cung cua ds
  50.  
  51.     for(i=1;i<=k;i++)
  52.     {
  53.         if(n==NULL)
  54.         {
  55.             p->rptr=NULL;
  56.             n=p;
  57.         }
  58.         else
  59.         {
  60.             p->rptr=n;
  61.             n=p;
  62.         }
  63.         if(i<k)
  64.         p=p->lptr;
  65.     }
  66.     l=p;//l tro den ptu dau tien cua ds
  67.    
  68.    
  69.     //
  70.  
  71.     //Nhap noi dung cho cac phan tu
  72.     p=l;
  73.     for(i=1;i<=k;i++)
  74.     {
  75.         printf("Phan tu thu %d: ",i);
  76.         scanf("%d",&p->info);
  77.         p=p->rptr;}
  78. //in danh sach vua nhap
  79.     printf("Danh sach vua nhap la: ");
  80.     p=l;
  81.     while(p!=NULL)
  82.     {
  83.         printf("%3d",p->info);
  84.         p=p->rptr;
  85.     }
  86. //Them lan 1
  87.     m=l;
  88.     if(k>0)
  89.     {
  90.     printf("\nM dang tro den phan tu dau tien, thuc hien them phan tu vao sau M.\n");
  91. }
  92.     else
  93.     printf("Danh sach dang rong. Them phan tu vao.\n");
  94.     printf("Noi dung phan tu la: ");
  95.     scanf("%d",&temp);
  96.     insert_after(m,temp);
  97.    
  98.     p=l;
  99.     printf("Danh sach sau khi them la: ");
  100.     while(p!=NULL)
  101.     {
  102.         printf("%3d",p->info);
  103.         p=p->rptr;
  104.     }
  105.     //Xoa
  106.     printf("\nXOA PHAN TU TRO BOI M\n");
  107.     delete(m);
  108.     printf("Danh sach sau khi xoa la: ");
  109.     p=l;
  110.     while(p!=NULL)
  111.     {
  112.         printf("%3d",p->info);
  113.         p=p->rptr;
  114.     }
  115.    
  116.    
  117. }   else
  118.     printf("So nhap vao khong hop le. Chuong trinh ket thuc");
  119.     return 1;
  120. }
  121.  
  122.  
  123. /*Cac Chuong trinh con*/
  124. void insert_after(dslr* m,int x)
  125. {
  126.     dslr* f;
  127.         if((r==NULL)&&(l==NULL))
  128.     {
  129.         m=(dslr *)malloc(sizeof(dslr));
  130.         m->info=x;
  131.         m->lptr=NULL;
  132.         m->rptr=NULL;
  133.         l=r=m;
  134.     }
  135.     else if(l==r)
  136.         {
  137.             f=(dslr *)malloc(sizeof(dslr));
  138.             f->info=x;
  139.            
  140.             f->lptr=m;
  141.             m->rptr=f;
  142.             f->rptr=NULL;
  143.             r=f;
  144.            
  145.          }
  146.          else
  147.          {
  148.             f=(dslr *)malloc(sizeof(dslr));
  149.             f->info=x;
  150.            
  151.             m->rptr->lptr=f;
  152.             f->rptr=m->rptr;
  153.             m->rptr=f;
  154.             f->lptr=m;
  155.         }
  156. }
  157.  
  158.  
  159.    
  160. void delete(dslr *m)
  161. {
  162.    
  163.     if (l==NULL)
  164.     printf("Danh sach khong co phan tu nao");
  165.     else
  166.         if(l==r)
  167.         {
  168.             r=NULL;
  169.             l=NULL;
  170.             free(m);
  171.         }
  172.             else
  173.                 if(l==m)
  174.                 {
  175.                     m->rptr->lptr=l;
  176.                     l=m->rptr;
  177.                     free(m);
  178.                 }
  179.                 else
  180.                     if(r==m)
  181.                     {
  182.                         m->lptr->rptr=r;
  183.                         r=m->lptr;
  184.                         free(m);
  185.                     }
  186.                     else//ko dau ko cuoi
  187.                     {
  188.                         m->lptr->rptr=m->rptr;
  189.                         m->rptr->lptr=m->lptr;
  190.                         free(m);
  191.                     }
  192.                 }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement