首先我们定义一个节点结构体,他的一部分是存储数据,一部分存储指针指向下一个节点。
下面是代码:
typedef struct Node
{
int data; //数据域
struct Node * pNext; //指针域;
}NODE, * PNODE;
接下来用函数实现链表的创建
PNODE create_list(void)
{
int len, val, i;
PNODE pHead = (PNODE)malloc(sizeof(NODE)); //为头指针动态分配空间
if(NULL == pHead) //判断是否分配成功
{
printf("Allocate False, Program Exit !\n");
exit(-1);
}
printf("Please put in the number of nodes :\n"); //输入节点的个数
scanf("%d", &len);
PNODE pTail = pHead; //定义一个指针,他总是指向下一个节点
pTail->pNext = NULL;
for(i = 0; i < len; ++i)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE)); //动态分配内存给一个新节点
if(NULL == pNew)
{
printf("Allocate False, Program Exit !\n");