链表

7 篇文章 0 订阅

首先,链表是是一个灰常坑的点,刚接触的人必须较好的掌握数组指针结构体,因为它们都是链表的基础。不然,从理解到应用链表的过程一定会遇到很多麻烦。

链表的难度绝对大于队列和栈,但是又不能绕过它。链表是数据结构中的基础,也是操作系统原理的基石。可以说学不好链表,计算机的东西一半得废。

链表,内功也!

那为什么需要链表呢?第一,它不像数组那样有预先设置大小(Size)的限制,能够实现“随取随用”,节约了内存是不是,想想房价多贵啊;第二,相比于数组,链表不需要在内存上移动任何元素就能实现数据元素(这是一个值得忖度的概念)的插入和删除,想想移民多劳民伤财不是。

掌握链表的本质:

先来个简单的。什么是链表?什么是单链表?你还说得出来吗?链表是由n个数据元素组成的有序序列,并且它的数据元素被称为结点。单链表是具有单向性,并且只包含一个指针域的链表。啦啦啦~~~

掌握链表的全部基本参数和基本操作。
基本的:构造+1
查看的:判断是否为空+1,获取结点个数+1,
插删的:普通插入+1,插入到Head后+1,插入到Tail+1,删结点+1,清空+1(虐待俘虏),析构+1,

还要清楚一些基本的问题。
在链表中如何找到最后一个结点?我们知道,在顺序表中,只需要根据length成员,就可以由数组下标直接定位到最后一个数据元素,但 是在链表中行吗?链表也有length成员用来记录链表当前的长度,于是就牵涉到一个很核心的问题了:链表它不是数组啊!还记得数组相比于链表的优点是什么吗?它遍历方便啊!!!!啧啧。所以,在链表中要想定位到最后一个结点,必须借助for循环找到我们需要的结点。所以,链表是不能进行二分查找的。

数据结构中链表的“简单应用”大观(看看你掌握了几个,都是基本功):

二叉树的链式存储;

设计一个用链表表示的直接选择排序的程序;

散列处理冲突的链地址法

链式基数排序;

补充:从栈中申请的内存在函数运行结束之后就会被回收掉,从堆中申请不会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值