00:00
好的。哎。好,我们来看一下,就是我们叫做什么呢?下一种链表。下一种列表来跟上思路。那么下面呢,我们来看一个使用he的头有害的头的双向链表的实线。那么我们看到单向链表其实有一点缺陷,他有什么缺陷呢?它是这样子的,单向链表的查找只能是一个方向,就是说它只能从头啪啪啪啪往后面一条线走中间。不能乱跑,它不能反向从从尾往头走,没有没有这个东西,所以它这个只能是一个方向,而双向链表呢,可以从前或者向后查询,它效率呢有时候会比较高一点。这是第一个好处,第二个好处呢,单向链表还有一个麻烦事,单向链表不能自我删除。他不能自已删自己。你比如说打个比方吧,同学们,假如我这有一个链表,我这有个链表,现在呢,假如是这样一个情况啊,同学们注意听我说。
01:07
嗯,假如呢,我们现在有这么几个节点。注意听啊,这个节点是二号吧,假设二号二号节点。二号节点。那我们有一个temp步节点在不停的找,突然这个二号temp呢,找到了一个节点,是二号,他说我要把这个节点删掉。他其实没有机会删掉的,他干不掉这个人,比如说假设我们的temp这个这个指针或者这个引用指向了二号节点,你想把这个二号节点从这个列表里面拿掉,你拿不掉。因为,因为,因为你没办法去访问到他前一个节点的next的那个字段。但是如果是双向链表呢,情况就不一样了,双向链表它是这样子的啊,我先给家说一下什么叫双向链表,双向链表就是在原先这个基础上可以做成这样东西,我给大家拷贝一份,注意听。
02:04
双向链表在这个地方的改进只有一点。好,来,走一个。注意听啊。嗯,它呢,会形成这么一个情况,就是说头节点还是头节点。头节量还是头节点它的前一个,它这个可以实现它,那么我这个节点。我这地方也可以指向你。就我可以指向你。同样的道理,同样道理,我这一个二这个节点呢,也可以指向它前面这个节点,就二号这个节点既可以指向后面的节点,也可以指向前面节点,那同样这个卢俊义呢,它也可以指向这个前一个节点。那这个这个呢,我们就把它叫做双向链表。啊,当然这个双向链表呢,还是一个不是环形的。它不是,它是单向的,它是单向的双向链表啊,也不能这么说,就是它,它是非环形的双向链表,还有一种链表更恐怖,它什么呢?它这个地方还只会这边来形成一个环形。
03:08
那环形双向的那个环形我们就不讲,我们待会儿讲一个单向环形那个还是有用的啊好,那说老师这个难不难呢,其实一点都不难。真的这个这个单项这这个这种收集列表还是比较简单,我给他家写一下啊,这个必须也掌握一下,因为有些面试官呢,他也喜欢问一下这个,哎,说你这个双向的啊列表你会不会用啊,对不对,好我们就把这个来搞定啊,大家看,如果一旦这种形式存在了,大家想就有个好处了,我们就可以实现。自我删除,你比如说我现在temp指向了二号节点,我想把自己干掉。非常的轻松,那你只需要通过这个节点找访问到前一个节点的下个节点。让它。指向。他的。
04:00
下一个节点,因为因为你这个地方还可以访问到我下一个节点吗?我可以让它指向它。好,然后呢,我再通过我的这个下一个节点,找到卢俊义的下前一个节点,然后呢,我让这个家伙呢,又指向我指向的前一个节点。好,这样一条线形成过后,大家看会是个什么情况呢?大家看到就是宋江,他直接指向卢俊义,卢俊义直接指用宋江,那中间这个家伙上哪去了呢?你看中间这个家伙他只有两条线,他是指他指向了卢俊义,他下一个节点指向卢俊义,他前一个指向宗教,但是没有人指向他了,所以这个呢,也会成为一个垃圾被销毁。啊,所以它是这么一一种逻辑啊,好同学们,我们先把它撤回去,那么我们来玩一把。好,我们来玩一把,看看这个能不能玩成功啊。呃,是是有一点点难,对不对,是有一点点难,但是呢,还好还好。
05:00
好的,那同学们,这是双向链表的一个示意图。玩一把。双向啊,先把它写上去。叫双向链表的一个示意图,大家看懂了。好,先把它板述一下,我们要讲的东西是双向链表的一个应用实例。直接升代码了。走标题三对不对,标题三,然后呢,他的这个刚才的说明呢,老师就直接偷个懒,把它放过来,诶把它翻过来就可以了,把它翻过来啊。来,这是我的一个示意图。好好,那么这个地方呢,我们就就开始写案例,它的一个示意图拉过来示意图示意图刚才呢,老师在这个Excel表里面也做了一个简单的一个一个一一个图解,对吧,还不够,呃,就是一个简单图解。大大,这个至,至少你要知道什么是双向嘛。
06:01
别,别把双线的概念都搞不懂,那就有点漏了啊。好的。那么我先把它放过来,下面我们就来做代码的实现,代码实现啊好,呃,双向链表的一个,呃,双向链表的一个简单的介绍就先说到这。
我来说两句