#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这个链表序列。