#include <stdio.h>
#include <stdlib.h>
typedef struct Node{
int data;
struct Node *next;
}Node;
Node* initList(){ //链表初始化
Node* list=(Node*)malloc(sizeof(Node));
list->next=NULL;
return list;
}
Node* createList(Node* list){ //头插法创建单链表
Node* l=(Node*)malloc(sizeof(Node));
Node* head=(Node*)malloc(sizeof(Node));
l->next=NULL;
head=l;
int nodenum,data=0;
printf("请输入要创建的结点个数:");
scanf("%d",&nodenum);
for(int i=1;i<=nodenum;i++){
printf("请输入第%d个结点的值:",i);
scanf("%d",&data);
Node* p=(Node*)malloc(sizeof(Node));
p->data=data;
p->next=l->next;
l->next=p;
}
return head;
}
void printList(Node* list){ //遍历
printf("当前单链表中元素为:");
list=list->next;
while(list){
printf("%d ",list->data);
list=list->next;
}
printf("\n");
}
int main(){
Node* list=initList();
Node* l=createList(list);
printList(l);
return 0;
}
测试结果:
请输入要创建的结点个数:5
请输入第1个结点的值:2
请输入第2个结点的值:4
请输入第3个结点的值:7
请输入第4个结点的值:9
请输入第5个结点的值:10
当前单链表中元素为:10 9 7 4 2
Program ended with exit code: 0