//单链表的创建
//算法思路:先建立一个空数据域的链表头指针
//从该节点依次插入新节点读入数据
//直至输入ctrl+z结束输入
#include <stdio.h>
#include <malloc.h>
typedef int ElemType;
//定义数据链表结构
typedef struct Node{
int data; //数据域
struct Node *next; //指针域
}Node,*linkList;
//创建链表
//头插法,先是一个空链表头指针,然后依次往后插入
linkList create_List()
{
//链表头指针
linkList head = (linkList)malloc(sizeof(Node));
head->next = NULL;
printf("请逆序输入数据:");
linkList list = (linkList)malloc(sizeof(Node));
while(scanf("%d", &list->data) != EOF)
{
list->next = head->next;
head->next = list;
list = (linkList)malloc(sizeof(Node));
}
return head;
}
//输出链表的数据
void printList(linkList list)
{
linkList current = list->next;
printf("建立的单链表为:\n");
while(current != NULL)
{
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
int main()
{
linkList list = create_List();
printList(list);
return 0;
}