数据结构——单链表(八卦掌)上部(附源码)

    文章目录


前言

        今天学习一门新的招式,八卦掌又称为游身八卦掌、八卦连环掌,是一种以内功和外功相结合,以掌法变换和行步走转为主要特点的中国传统拳术。

        本次主要学习掌法变换

        我们学的是无头单向非循环链表

        如八卦掌招数有问题,或可以优化,望各位大侠进行斧正。(ง •̀_•́)ง(ง •̀_•́)ง(ง •̀_•́)ง


提示:以下是本篇文章正文内容,下面案例可供参考

一、链表是什么?

        概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。

        我们可以把链表想象成一列火车,这列火车有一个火车头和n个车厢,乘客的数量决定了车厢的数量。车厢有挂钩将车厢之间连接起来。我们把车厢想象成物理空间,指针指向的地址表示挂钩,链表的结构体表示车厢的形状。

        

二、实现单链表

1.结构体的定义

        根据上面的图,我们应该知道。单链表是一个结构体,这个结构体有两个空间。一个是链表的数据,它放在结构体里面,一个是指向下一个结构体的类型,它也放在结构体之中。

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>
typedef int stl_type; // 对变量名进行重命名

typedef struct s_list_node    (车厢)
{
	stl_type data; // 存放数据的类型    (乘客)
	struct s_list_node* next; 指针的类型是这个结构体的类型    (车钩)
 }s_l_node;

2.八大掌

2.1 起手(扩容)

        在学习八大掌之前我们要打基础,又称起手式

       当我们要放进n个数据,怎么定义,这就和动态顺序表一样,对结构体进行扩容,需要放进去几个就扩容几个。扩容的大小为一个结构体的大小。同时对其进行判断,是否扩容成功。

        这里的扩容是指,我们向内存要一块空间(车厢)并且放入数据(乘客)。所以,我们传进来的是数据,同时地址指向空,这是防止地址出现野指针

s_l_node* add_capaci
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值