C语言单链表简单实现

 

  
  
  
  
  1. #include<stdio.h> 
  2. #include<stdlib.h> 
  3.  
  4. typedef int item; 
  5.  
  6. typedef struct node { 
  7.     item data; 
  8.     struct node *next; 
  9. }Slist; 
  10.  
  11. Slist* SL_creat(); 
  12. void SL_print(Slist*); 
  13. void SL_lenght(Slist*); 
  14.  
  15.  
  16. int main() { 
  17.     Slist *head,*q; 
  18.     q=head=SL_creat(); 
  19.     SL_print(head); 
  20.     head=q; 
  21.     SL_lenght(head); 
  22.     return 0; 
  23.  
  24. //创建链表  
  25. Slist* SL_creat() { 
  26.     Slist *head,*r,*s; 
  27.     int i; 
  28.     head=(Slist *)malloc(sizeof(Slist)); 
  29.     s=head; 
  30.     while(scanf("%d",&i),i) { 
  31.         r=(Slist *)malloc(sizeof(Slist)); 
  32.         r->data=i; 
  33.         s->next=r; 
  34.         s=r; 
  35.     } 
  36.     r->next=NULL; 
  37.     return head; 
  38.  
  39. //遍历链表  
  40. void SL_print(Slist *head) { 
  41.     head=head->next; 
  42.     while(head) { 
  43.         printf("%d ",head->data); 
  44.         head=head->next; 
  45.     } 
  46.     putchar('\n'); 
  47.  
  48. //求链表长度 
  49. void SL_lenght(Slist *head){ 
  50.     int i=0; 
  51.     while(head) { 
  52.         head=head->next; 
  53.         i++; 
  54.     } 
  55.     printf("链表的长度为:%d\n",i); 

你可能感兴趣的:(C语言,单链表)