线性表——单链表的学习

声明

在b站学习然后做的笔记

线性表的链表学习

【数据结构与算法基础(青岛大学-王卓)】 https://www.bilibili.com/video/BV1nJ411V7bd/?p=22&share_source=copy_web&vd_source=5db78eea1ddd8f898d3af5630d27b1b3

链表的分类

单链表的空与非空,定义表示,及组成

头指针L,指向首元节点,首元节点指向头节点。

数据域和指针域 data | next

data的类型由元素类型决定

next存放下一个节点的地址,指针

struct lnode 嵌套的定义,自己定义自己,所以结构名一定要写Lnode。

typedef是定义一个结构类型 名字就叫做Lnode

lnode 和linklist都是类型

lnode *l;等价于=linklist l;

简洁的定义方式

单链表的操作——算法

初始化——有头结点,指针域为空

init_list

L是引用型的变量

从内存中找到这样一块空间,获得这块空间的地址,然后赋值给L。

L->next=null; 表示 L的next域赋为空。

判断链表是否为空 listEmpty(判断语句)

(判断头结点的指针域是否为空就行)

销毁

头指针存储的是头节点的地址

将L赋值给p,则p指向的是头节点 p=L;

L已经指向了a1,p就可以删掉了

然后就可以让指针变量p指向当前的L所指向的节点a1 即p=L

类c语言代码

清空

l的下一个节点地址赋值给p,这p就指向了首元结点a1即p=L->next;

l指向的是头结点 p指向头结点即p=L;

结束,循环条件。

算法

求表长,即表有多少节点

指向首元结点a1

单链表的复习

单链表(带头结点的)取第i个元素

eg

查找(按值查找)

算法步骤

代码

算法2.9 插入

三个难点

删除第i个节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值