| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 算法与数据结构 --- 线性表 --- 顺序表示和实现 -> 正文阅读 |
|
[数据结构与算法]算法与数据结构 --- 线性表 --- 顺序表示和实现 |
?第一部分 --- 线性表的定义和特点? ? ? ? 补充部分 --- 线性表案例讲解? ? ?遇到为0的项数直接取消链接,而不需要我们专门空一个位置出来 第二部分 --- 线性表的类型定义??list是线性表的英文名字,Elemset 1. initialization 初始化 2.销毁线性表的本质是将线性表从内存中删除 3.置为空表的意思是将线性表中的元素全都删除 ? 1.数据元素判断函数的返回值类型是bool类型,当函数返回一个 true 时表示函数满足,返回一个false 时表示函数不满足 2.这个函数会将我们传进来的 e 作为左参数,同时将?线性表中的每个元素依次作为右参数,左右参数进行比较,右参数依次变换,直到返回true为止,若比完了最后一个元素后仍无true则结束 ? ? 1.Traverse:遍历? 第三部分 --- 线性表的顺序表示和实现(1,2)1.对于顺序结构存储,不仅要在内存空间中按照顺序来存,而且要占用一片连续的内存空间来存 ? 1.占用了一片连续的内存空间的话会有一个很大的好处,就是当我们知道了内存空间中的一个元素的时候我们可以通过它推算出其它元素的存储位置。 ?1.存储位置是2000单元,然后共占据8个单元,于是从2000开始算一个,往后数七个到2007单元存储结束 ?1.下面这个列表的形式就是用来解决叔祖不可动态变化大小的方法 1.通过上面这个SqList结构体类型我们就可以创建一个数组,在这个结构体类型中的指针指向的是我们在堆区中开辟的动态数组的首元素的地址 第四部分 --- 线性表的顺序表示和实现(3,4)?对于逻辑位序,每个元素都是从0开始编号的,对于物理位序,每个元素则是从1开始编号的 1.创建一个线性表 2.在堆区中为线性表开辟动态数组空间 3.设置好数组的长度 --- length? 1.infeasible : 不可行的 ? ? ? 1.上面这个方法的完整步骤是:创建一个引用,先不给这个引用找到母体而是把它作为参数传给函数,在函数中我们可以给这个引用找到母体(注意这个母体不能在函数结束后就自动销毁,那样就相当于没有给引用找到母体了) 1.这里的查找算法采用的是顺序查找法,从上往下/从下往上一个元素一个元素的比较查找 2.注意这个算法中我们返回的是从1开始的元素的物理序号,而不是从0开始的元素的逻辑序号 ?所谓的平均查找长度其实就是 :平均查找次数 (查找第一个元素所需的次数 + 第二个元素所需的次数 + 第三个 + .... 第n个元素所需的次数 ) / 元素总数n 对于顺序查找法而言上式等于 : (1+2+3+...+n)/ n ??查第一个元素需要的查找次数 * 第一个元素出现的概率 + 第二个元素 * 概率 +...+第n个元素*概率 最终得到和就是我们需要的平均查找长度(期望值) 第五部分 --- 线性表的顺序表示和实现(5,6)1.插入位置只能在 0~n 位序上(逻辑位序),或者说是只能在1~n+1的位序上(物理位序) 1.以引用的方式作为形参的时候,我们可以直接将变量作为实参传给函数,此时实参传给形参的过程就相当于在给引用找别名 2.如果算法中的基础语句(执行次数最多的语句)执行的次数要根据我们给定的参数来决定的话,那么算法的时间复杂度中的 f(n) 就等于将给定参数的所有可能值下的基础语句执行次数求和后除以所有的可能数得到的平均次数,如下图: ? 1.如果我们需要保留被删除元素的话,我们可以执行第二步,如果不需要的话可以不执行第二步,直接删除即可。 ? ??1.等差数列求和: Sn = [n*(a1+an)] / 2 第六部分 --- 线性表的顺序表示和实现小结1.辅助空间就是我们在算法中新开辟的内存空间 ?1.存储密度那里的结点结构指的是我们开辟的用来存储结点的内存空间 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:43:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |