单链表的创建
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode{
struct LNode *next;
int data;
}LNode;
LNode *HeadCreateList(int len)
{
LNode *L = (LNode*)malloc(sizeof(LNode)); //创建一个头结点
LNode *temp = L;//声明一个中间变量,指向头结点,用于遍历链表
temp->next = NULL; //该链表此刻只带头结点
for(int i=1;i<=len;i++) //循环申请len个结点来接收scanf得到的元素
{
LNode *p = (LNode*)malloc(sizeof(LNode)); //生成新结点
scanf("%d",&p->data); //用新申请的结点来接收scanf得到的元素
/* 以下两条语句是头插法的关键步骤,与本工程"Insert"函数原理一样 */
p->next = temp->next; //新结点的next指针指向开始结点
temp->next = p; //头结点的next指针指向新结点
}
return (LNode*)L;
}
int main(){
LNode *L=HeadCreateList(6);
LNode *p=L->next;
while(p) {
printf("%d ",p->data);
p=p->next;
}
}