#include
#include
#define N 8
typedef struct list
{ int data;
struct list next;
} SLIST;
SLIST *creatlist(int *a);
void outlist(SLIST *);
void fun( SLIST *h, int *n)
{ SLIST *p;
/*********found**********/
1=0;
p=h->next;
while(p)
{ (*n)++;
/**********found**********/
p=p->2;
}
}
main()
{ SLIST head;
int a[N]={12,87,45,32,91,16,20,48}, num;
head=creatlist(a); outlist(head);
/*********found**********/
fun(head, &num);
printf("\nnumber=%d\n",num);
}
SLIST *creatlist(int a[])
{ SLIST *h,*p,*q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i { q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q; p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{ SLIST *p;
p=h->next;
if (p==NULL) printf("The list is NULL!\n");
else
{ printf("\nHead ");
do
{ printf("->%d",p->data); p=p->next; }
while(p!=NULL);
printf("->End\n");
}
}
http://blog.csdn.net/xubin341719/article/details/7091583/
1.*n = 0
2.p = p->next
#include <stdio.h>
#include <stdlib.h>
#define N 8
typedef struct list
{
int data;
struct list *next;
} SLIST;
SLIST *creatlist(int *a);
void outlist(SLIST *);
void fun(SLIST *h, int *n)
{
SLIST *p;
/**********found**********/
*n = 0;
p = h->next;
while (p)
{
(*n)++;
/**********found**********/
p = p->next;
}
}
void main()
{
SLIST *head;
int a[N] = { 12, 87, 45, 32, 91, 16, 20, 48 }, num;
head = creatlist(a); outlist(head);
/**********found**********/
fun(head, &num);
printf("\nnumber=%d\n", num);
}
SLIST *creatlist(int a[])
{
SLIST *h, *p, *q; int i;
h = p = (SLIST *)malloc(sizeof(SLIST));
for (i = 0; i<N; i++)
{
q = (SLIST *)malloc(sizeof(SLIST));
q->data = a[i]; p->next = q; p = q;
}
p->next = 0;
return h;
}
void outlist(SLIST *h)
{
SLIST *p;
p = h->next;
if (p == NULL) printf("The list is NULL!\n");
else
{
printf("\nHead ");
do
{
printf("->%d", p->data); p = p->next;
} while (p != NULL);
printf("->End\n");
}
}