Ch2_3.c
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
源码类别:

软件工程

开发平台:

C/C++

  1. #include <stdio.h>
  2. #include <alloc.h>
  3. typedef struct node
  4. {   int data;
  5.     struct node *link;
  6. }JD;
  7. JD *dlbcz(JD *h,int x)
  8. { JD *p;
  9. p=h;
  10. while(p!=NULL && p->data!=x)
  11. p=p->link;
  12. return (p);
  13. }
  14. void dlbcr(JD *p,int x)
  15. { JD *s;
  16. s=(JD*)malloc(sizeof(JD));
  17. s->data=x;
  18. s->link=p->link;
  19. p->link=s;
  20. }
  21. void dlbsc(JD *p)
  22. { JD *q;
  23. if(p->link!=NULL)
  24. {q=p->link;
  25.  p->link=q->link;
  26.  free(q);
  27. }
  28. }
  29. JD* dlbjl(int a[],int n)
  30. {
  31. JD *s,*h;
  32. int i;
  33. h=(JD*)malloc(sizeof(JD));
  34. h->data=0;
  35. h->link=NULL;
  36. for(i=n;i>0;i--)
  37. {s=(JD*)malloc(sizeof(JD));
  38.  s->data=a[i-1];
  39.  s->link=h->link;
  40.  h->link=s;
  41. }
  42. return (h);
  43. }
  44. void dlbxs(JD *h)
  45. {   JD *p;
  46.     p=h->link;
  47.     while(p!=NULL)
  48.     {  printf("%d,",p->data);
  49.        p=p->link;
  50.     }
  51.     printf("n");
  52. }
  53. void main()
  54. {  int a[]={3,2,1,4,5};
  55.    JD *head,*p;
  56.    head=dlbjl(a,5);
  57.    dlbxs(head);
  58.    p=dlbcz(head,4);
  59.    printf("%dn",p->data);
  60.    p=head->link->link;
  61.    dlbcr(p,9);
  62.    dlbxs(head);
  63.    p=head->link->link->link;
  64.    dlbsc(p);
  65.    dlbxs(head);
  66. }