| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 408数据结构——第二章线性表之顺序表(1) -> 正文阅读 |
|
[数据结构与算法]408数据结构——第二章线性表之顺序表(1) |
1. 顺序表的定义线性表的顺序存储又称顺序表。他是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻,即表中元素的逻辑顺序与其物理顺序相同。 1.1 定义
1.2 动态分配存储空间一维数组可以是静态分配的,也可以是动态分配的。在静态分配时,由于数组的大小和空间事先已经固定好,一旦空间占满,再加入新的数据将会产生溢出,进而导致程序奔溃甚至引起其他未知异常。 而在动态分配时,存储数组的空间是在程序执行过程中通过动态存储分配语句分配的,一旦存储空间占满,就另外开辟一块更大的存储区间,将原来的元素复制过去,从而达到扩充存储数组空间的目的,而不需要一次性分配很大的空间。
1.3 特点①随机访问(随机存取),通过首地址和元素序号即可访问 ②存储密度高,每个结点只存数据元素 ③插入删除不方便 ④不易于扩容 2. 顺序表的基本操作2.1 插入
时间复杂度 最好:在表尾插入,O(1) 最坏:在表头插入,O(n) 平均:O(n) 2.2 删除
时间复杂度 最好:在表尾删除,O(1) 最坏:在表头删除,O(n) 平均:O(n) 2.3 按位查找
时间复杂度O(1) 2.4 按值查找
时间复杂度: 最好:查找的元素在表头,O(1) 最坏:查找的元素在表尾,O(n) 平均:O(n) 3.课后题1.线性表的顺序存储结构是一种(A) A. 随机存取的存储结构? ? ? ? ? ? ? ? ? ? ? ? B.顺序存取的存储结构 🐖:B为易错项,顺序存取≠顺序存储,线性表是顺序存储的; ? ? ? ? A随机存取是指根据起始地址加上元素序号,可以访问任意一个元素 2.顺序表交换第3个元素和第4个元素的值,仅需3次交换操作即可 3.顺序表和链表输出n个元素的值的效率相等 4.若长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,则i的合法值是 1<=i<=n+1 🐖:在表的第i个位置插入一个数据元素可以理解为顶替该位置,表尾后面也可以插入所以是n+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年12日历 | -2024/12/29 7:44:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |