链表的遍历-结点个数

#include<stdio.h>

#include<stdlib.h>

#define N 9

typedef struct node{

   int  data;

   struct node * next;

}ElemSN;

ElemSN  * Createlink(int a[],int n){ 

    int i;

    ElemSN * h=NULL,* tail, * p;

    for( i=0;i<N;i++) {

p=(ElemSN *)malloc(sizeof(ElemSN));

p->data =a[i];

p->next=NULL;

if(!h)                                 //正向创建链表

h=tail=p;

else

tail=tail->next=p;

}

return h;

   }


 int Coundnode (ElemSN *h) {

    ElemSN * p;

    int cut=0;

    for(p=h;p; cut++,p=p->next);        //for循环遍历cnt++

    return cut;

  }

 int main(void){

        int cut;

int a[]={1,2,3,4,5,6,7,8,9};

ElemSN *head;

head=Createlink(a,9);

cut=Coundnode(head);

printf("结点个数=%d\n",cut);


}


猜你喜欢

转载自blog.51cto.com/13645380/2153402