Guest User

ThemBotPhanTu_dsLR_FamiHug

a guest
Nov 23rd, 2010
65
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.                 }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×