链表初始化
struct LinkNode
{
//数据域
int num;
//指针域
struct LinkNode* next;
};
静态链表
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
//静态链表在栈里面
//节点的设计
struct LinkNode
{
//数据域
int num;
//指针域
struct LinkNode* next;
};
void text1()
{
//创建节点
struct LinkNode node1 = { 10,NULL };
struct LinkNode node2 = { 20,NULL };
struct LinkNode node3 = { 30,NULL };
struct LinkNode node4 = { 40,NULL };
struct LinkNode node5 = { 50,NULL };
//建立节点间的联系
node1.next = &node2;
node2.next = &node3;
node3.next = &node4;
node4.next = &node5;
//遍历链表循环遍历
struct LinkNode* pC = &node1;;
while (pC != NULL)
{
printf("%d\n", pC->num);
pC = pC->next;
}
}
int main()
{
text1();
system("pause");
return 0;
}
动态链表
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
//静态链表在栈里面
//节点的设计
struct LinkNode
{
//数据域
int num;
//指针域
struct LinkNode* next;
};
void text2()
{
//创建节点
//malloc 指动态内存分配,
// 错误代码:struct People * p = malloc(sizeof(struct People));
//正确代码:struct People* p = (People*)malloc(sizeof(struct People))
//该函数是一种分配长度为num_bytes字节的内存块的函数,可以向系统申请分配指定size个字节的内存空间。
struct LinkNode* node1 = (LinkNode*)malloc(sizeof(struct LinkNode));
struct LinkNode* node2 = (LinkNode*)malloc(sizeof(struct LinkNode));
struct LinkNode* node3 = (LinkNode*)malloc(sizeof(struct LinkNode));
struct LinkNode* node4 = (LinkNode*)malloc(sizeof(struct LinkNode));
struct LinkNode* node5 = (LinkNode*)malloc(sizeof(struct LinkNode));
//给每个节点建立关系
node1->num = 100;
node1->next = node2;
node2->num = 200;
node2->next = node3;
node3->num = 300;
node3->next = node4;
node4->num = 400;
node4->next = node5;
node5->num = 500;
node5->next = NULL;
//遍历链表
struct LinkNode* pC = node1;
while (pC != NULL)
{
printf("%d\n", pC->num);
pC = pC->next;
}
//空间释放
free(node1);
free(node2);
free(node3);
free(node4);
free(node5);
}
int main()
{
text2();
system("pause");
return 0;
}