SHARE
TWEET

ThemBotPhanTu_dsLR_FamiHug

a guest Nov 23rd, 2010 33 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
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top