首先第一个头文件,定义结构体类型
typedef struct LNode
{
int data;
struct LNode* next;
}LNode,*LinkList;
//可能作为第一次写c语言的小伙伴看不懂这一段typedef是如何定义的
//基本的解释如下所示
//typedef struct LNode LNode;
//typedef struct LNode* LinkList; //定义指针指向头结点
其次是源文件
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include"LinkList.h"
LinkList createList(int n)
{
LinkList L, p, q;
int i;
L = (LNode*)malloc(sizeof(LNode));//定义一个头结点
if (!L)//防止头结点未定义成功
return 0;
L->next = NULL;
q = L;
for (i = 0; i < n; i++)
{
p = (LNode*)malloc(sizeof(LNode));
printf("请输入第%d个元素的值:", i+1);
scanf("%d", &(p->data));
p->next = NULL;
q->next = p;
q = p;
}
return L;
}
bool PrintLinkList(LinkList L)
{
int i = 0;
if (!L)//如果头指针L指向的是空值,则直接结束
return false;
LinkList p = L->next;
while (p)
{
printf("链表中第%d个数为%d\n", i + 1, p->data);
p = p->next;
}
return true;
}
int main()
{
LinkList head = NULL;//初始化LinkList指针指向NULL
int n;//用于定义输入几个数据
printf("请输入你需要输入几个数据\n");
scanf("%d", &n);
head = createList(n);
PrintLinkList(head);
return 0;
}