数据结构 链表

链表初始化

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值