下列给定程序中,函数fun的功能是:统计带头结点的单向链表中结点的个数,并存放在形参n所指的存储单元中。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 试题程序: #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) { SLTST *p; 1 = 0; p = h -> next; while (p) { (* n ) ++; p = p -> 2 ; } } main ( ) { SLIST *head ; int a [ N ] = {12 , 87 , 45 , 32 , 91 , 16 , 20, 48}, num; head = creatlist (a); outlist (head); fun( 3 , & num); printf ( " \ nnumber = d \ n ", num); } SLIST *creatlist (int a []) { SLTST *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 "); } }