前插法创建单链表(C语言实现)
#include<stdio.h>
#include<stdlib.h>
struct node{
int data;//结点的数据域
struct node *next;//结点的指针域
};
int main()
{
struct node *head,*p;
int i,n;
head = (struct node *)malloc(sizeof(struct node));//为头结点申请空间
head->next = NULL;//头结点指针域指向空
printf("请输入链表长度:");
scanf("%d",&n);//输入表长
for(i=1;i<=n;i++)
{
p = (struct node *)malloc(sizeof(struct node));//为新结点申请空间
scanf("%d",&p->data);//向新结点p的数据域中添加元素
p->next = head->next;
head->next = p;//头结点的指针域指向新结点
}
while(1)//遍历元素
{
printf("%d ",p->data);
if(p->next==NULL)
break;//如果是最后一个结点则跳出循环
p = p->next;//p指向下一个结点
}
return 0;
}
实现过程如下图: