代码如下,链表是由一个个结点组合组成的,所以创建一个链表的过程也就是一个个添加结点的过程,这篇文章我们先使用头插法,所谓头插法就是先创建一个头结点,而这个头结点下面将会是这个链表的表尾,至于为什么,且听我细细说来。
所谓头插法,即创建一个头结点head,而这个头结点指向为空,它的next域为空,以后作为表尾结点。 每次新输入一个num,就插入到头结点的前面,这个结点作为新的表头,于是以此类推,我们最初创建的头结点head最后就变成了表尾结点。
如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct node *list;
struct node
{
int data;
list next;
};
void printlist(list head);//遍历函数
void createlist_h(list head,int num);
list input();
int main()
{
list A = input();
printlist(A);
return 0;
}
list input()
{
list head =(list)malloc(sizeof(struct node));
head->next = NULL;
int num;
while(scanf("%d",&num) ,num)
createlist_h(head,num);
return head;
}
void createlist_h(list head,in