摘要: 在上几小节中我们实现了基本的链表结构,并在上一节的底部给出了有关链表的源码,此处在贴一次吧,猛戳 在开始栈的实现之前,我们再来看看关于链表的只在头部进行的增加、删除、查找操作,时间复杂度均为O(1),基于链表的这几个优势,我们在此基础上实现栈。 前言,在写本小节之前,我们已经实现了一个基于静态数组的 阅读全文
posted @ 2019-04-02 17:39 WFaceBoss 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 该部分与上一节是息息相关的,关于如何在链表中删除元素,我们一步一步来分析: 一、图示删除逻辑 假设我们需要在链表中删除索引为2位置的元素,此时链表结构为: 若要删除索引为2位置的元素,需要获取索引为2位置的元素之前的前置节点(此时为索引为1的位置的元素),因此我们需要设计一个变量prev来记录前置节 阅读全文
posted @ 2019-04-02 15:52 WFaceBoss 阅读(9297) 评论(0) 推荐(0) 编辑
摘要: 本节是在上一小节的基础上继续完善我们的链表相关方法的编写,在本节中我们着重对如何获取链表中元素、查询元素以及修改元素进行学习。 一、获取元素 1.关于获取链表中元素的方法的分析 由于我们使用了虚拟头结点,而我们每次都需要从第一个真实节点开始,因此需要首先得到虚拟头结点的下一个节点是谁,然后在此基础上 阅读全文
posted @ 2019-04-02 12:18 WFaceBoss 阅读(3279) 评论(0) 推荐(0) 编辑
摘要: 在上一小节中关于在链表中头部添加元素与在其他位置添加元素在逻辑上有所差别,这是由于我们在给链表添加元素时需要找到待添加元素位置的前一个元素所在的位置,但对于链表头来说,没有前置节点,因此在逻辑上就特殊一些,操作方式也就有所差别,需单独处理。为了针对头结点的操作方式与其他方式一致:接下来我们就一步一步 阅读全文
posted @ 2019-04-02 10:17 WFaceBoss 阅读(1442) 评论(0) 推荐(2) 编辑