第二十四课 单链表的遍历与优化

问题:

如何遍历单链表中的每一个元素?

示例:

在头部插入元素时,时间复杂度是O(n)。 获取元素时,时间复杂度是O(n*n),因为内层定位位置时有一个O(n)复杂度。

从理论上来说遍历一个单链表,只需要线性的时间就够了。

设计思路:

提供一组相关的遍历函数,遍历时使用这些函数来操作:

move函数的i参数为目标位置,step参数为每次移动的节点数。

end用来判断当前的游标是否到达了单链表的尾部。

current返回当前游标指向的数据元素。

next移动游标,移动的次数根据move中的step的值来决定。

原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9650726.html

时间: 2024-11-07 18:26:10

第二十四课 单链表的遍历与优化的相关文章

第二十二课 单链表的具体实现

本节目标: 添加LinkList.h文件: 1 #ifndef LINKLIST_H 2 #define LINKLIST_H 3 4 #include "List.h" 5 #include "Exception.h" 6 7 namespace DTLib 8 { 9 10 template < typename T > 11 class LinkList : public List<T> 12 { 13 protected: 14 st

第二十四课:能量和功率

1.RC电路充电过程的能量特性: 电源提供的能量  Vs i 在T内积分 如果T远远大于时间常数,则该能量等于 CVs2 但是电容储存的能量等于 (1/2) CVs2 因此一半能量被电阻消耗,另一半则被电容储存起来 2.RC电路放电过程的能量特性: 所以能量消耗在电阻上 3.将两个过程相连,则电源消耗CVs2,一般在充电时消耗,一般在放电时消耗 因此平均功率等于 CVs2f   ,f是充放电的切换频率,愈大功率越大 4.类似于MODFET反相电路 两种功率之和:待机功率和动态功率,后者就是充放电

线性表的链式存储——单链表的遍历与优化

1,如何遍历单链表中的每一个数据元素? 1,当前单链表遍历方法: 1,插入的时间复杂度为 O(n),而遍历的时间复杂度为 O(n*n): 2,遗憾的事实: 1,不能以线性的时间复杂度完成单链表的遍历: 新的需求: 1,为单链表提供新的方法,在线性时间内完成遍历: 3,设计思路(游标): 1,在单链表内部定义一个游标(Node* m_current): 2,遍历开始前将游标指向位置为 0 的数据元素: 3,获取游标指向的数据元素: 4,通过结点中的 next 指针移动游标: (5),从程序的角度来

第二十四课:事件系统3

本课还是来讲解一下jQuery是如何实现它的事件系统的.上一课主要讲了jQuery.event.add的源码解析,这几课主要针对jQuery源码进行分析,如果不需要理解jQuery是如何实现事件系统机制的,可以忽略.这一课我们先来讲一下jQuery.event.remove的源码解读. remove方法的目的是,根据用户传参,找到事件队列,从里面把匹配的handleObj对象移除,在参数不足的情况下,可能移除多个或所有的handleObj.当队列的长度为0(当某事件的事件处理函数数组为空时,就代

ParisGabriel:Python全栈工程师(0基础到精通)教程 第二十四课(exercises)

# # 练习: # # 1. 用map函数求: # # 1**3 + 2**3 + 3 ** 3 + .... 9**3 的和 def add_(x): return x ** 3 print(sum(map(add_, range(1, 10)))) # # 2. 用map函数求: # # 1**4 + 2**4 + 3 ** 4 + .... 20**4 的和 def add_(x): return x ** 4 print(sum(map(add_, range(1, 21)))) # #

JAVA学习第二十四课(多线程(三))- 线程的同步

继续以卖票为例 一.线程安全问题的解决 同步的第一种表现形式:同步代码块 思路: 将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程是不允许参与运算的,必须要当期线程把代码执行完毕后,其他线程才可以参与运算 在java中用同步代码块解决这个问题 同步代码块格式: synchronized(对象) { 需要被同步的代码部分 } class Ticket implements Runnable { private int num = 100; Object god = ne

第二十四课

第一单元语法部分 动词的被动态定义:以中心动词的行为者以外的非积极参与者为主语进行描写的句式叫做被动态. 多伴有受到危害.损害.伤害之意,但在现代日语中,主体受益.中立(既非受害也非受益).间接受到影响时也常用被动句式来表示. 变形:1类动词:将词尾う段假名       あ段假名 + れる               書く          書かれる 2类动词:去掉词尾 る   +  られる 食べる              食べられる 3类动词:来(く)る              来(こ)ら

linux学习笔记-第二十四课-LNMP-Nginx高级配置(三)

一.用户认证 用户认证功能是利用Apache的工具htpasswd生成的密钥,所以需要安装Apache的这个工具即可,我们用yum来安装就可以. [[email protected] ~]# yum install -y httpd-tools [[email protected] ~]# htpasswd -cm /usr/local/nginx/conf/.htpasswd mydiscuz New password: Re-type new password: Adding passwor

第二十四课、布局管理器(三)

一.如何实现下面的用户界面 1.解决方法 (1).绝对定位组件的坐标和大小 (2).嵌套QBoxLayout (3).创建3x2的QGridLayout 编程实验:  Widget.h  Widget.cpp  main.cpp 二.QFormLayout布局管理器 1.以表单(Form)的方式管理界面组件 2.表单布局中的标签和组件是相互对应的关系 3.QFormLayout的用法概要          4.QFormLayout的样式函数    5.表单布局支持嵌套,其它布局管理器可以作为子