Advertisement
Guest User

linkedlist_FamiHug

a guest
Nov 23rd, 2010
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.75 KB | None | 0 0
  1. //by FamiHug@FAMILUG
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int init();
  6. void insert_head(int);
  7. void insert_tail(int);
  8. void delete_head();
  9. void delete_tail();
  10.  
  11. typedef struct pointer
  12. {
  13.         int info;
  14.         struct pointer *link;
  15. }dslk;
  16.  
  17. dslk *l,*p;
  18. int n,d,i;
  19. float s;
  20.  
  21. int main()
  22. {
  23.         int x;
  24.         int init();
  25.         printf("CHUONG TRINH MINH HOA DANH SACH LIEN KET DON\n");
  26.         printf("Ung dung de tinh trung binh cong cua cac phan tu chan trong day so nhap vao\n");
  27.         printf("======================================================\n");
  28.         printf("Nhap vao so phan tu cua danh sach: ");
  29.         scanf("%d",&n);
  30.         if(n>=0)
  31. {
  32.         for(i=1;i<=n;i++)
  33.         {
  34.         printf("Phan tu thu %d:",i);
  35.         scanf("%d",&x);
  36.         insert_head(x);
  37.         }
  38.  
  39.         s=0;
  40.         d=0;
  41.         p=l;
  42.         for(i=1;i<=n;i++)
  43.         {
  44.                 if(p->info %2 ==0)
  45.                 {
  46.                         d++;
  47.                         s=s+p->info;
  48.                 }
  49.                 p=p->link;
  50.         }
  51.         if(d!=0) printf("TBC=%f",s/d);
  52.         else printf(" Khong co phan tu nao chia het cho 2 ");
  53. }else printf("So nhap vao khong hop le. Chuong trinh ket thuc");
  54.  
  55.  return 0;
  56. }
  57.  
  58.  
  59. int init()
  60. {
  61.         l=NULL;
  62.         return 0;
  63. }
  64. void insert_head(int x)
  65. {
  66.         p=(dslk *)malloc(sizeof(dslk));
  67.         p->info=x;
  68.         p->link=l;
  69.         l=p;
  70. }
  71. void insert_tail(int x)
  72. {
  73.         dslk *q;
  74.         q=(dslk *)malloc(sizeof(dslk));
  75.         p->info=x;
  76.         p->link=NULL;
  77.         if(l==NULL) l=p;
  78.         else
  79.         {
  80.                 q=l;
  81.                 while(q->link!=NULL)
  82.                 {
  83.                         q=q->link;
  84.                 }
  85.                 q->link=p;
  86.         }
  87. }
  88. void delete_head()
  89. {
  90.         if(l==NULL) printf("\n Danh sach rong");
  91.         else
  92.         {
  93.                 p=l;
  94.                 l=l->link;
  95.                 free(p);
  96.         }
  97. }
  98. void delete_tail()  
  99. {
  100.         dslk *q;
  101.         if(l==NULL) printf("\n Danh sach rong");
  102.         else
  103.         {
  104.                 if (l==NULL)
  105.                         {
  106.                                 p=l;
  107.                                 l=NULL;
  108.                                 free(p);
  109.                          }
  110.                  else
  111.                         {
  112.                                 q=l;
  113.                                 while (q->link->link !=NULL)
  114.                                 {      
  115.                                         q=q->link;
  116.                                         p=q->link;
  117.                                         q->link=NULL;
  118.                                         free(p);
  119.                                 }
  120.                         }
  121.                 }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement