编写程序,建立一个由正整形数组成的带头结点的单向链表,将链表中的数据输出,并统计链表中结点的个数。

在线等答案,急求~

#include <stdio.h>
#include <stdlib.h>
struct tagLink
{
    int data;
    struct tagLink *next;
}Link;
typedef struct tagLink* list;
void creat_list(list L,int data);
void disp_list(list L);
void out_put(list L);
int array[10]={1,2,3,4,5,6,7,8,9,10};
int main()
{
    list L;
    L=(list)malloc(sizeof(Link));
    L->next=NULL;
    int i;
    for(i=0;i<10;i++)
        creat_list(L,array[i]);
    //out_put(L->next);
    disp_list(L);
    getchar();
    //system("pause");
    return 0;
}
void creat_list(list L,int data)
{
    list P;
    P=(list)malloc(sizeof(Link));
    P->next=L->next;
    L->next=P;
    P->data=data;
}
void disp_list(list L)
{
    list P;
    int cnt = 0;
    P = L->next; //Point the first node.
    while(P) {
        printf("%d ",P->data);
        cnt ++;
        P = P->next;
    }
    printf("\n The total node is: %d\n", cnt);
    return ;
}
void out_put(list L)
{
    if(L->next!=NULL)
        out_put(L->next);
    printf("%d ",L->data);
}



disp_list 是正序输出的方式, out_put为逆序输出。

注意: 链表生成时将生成10, 9, ...1这个链表序列。

温馨提示:答案为网友推荐,仅供参考
相似回答