当前课程知识点:数据结构(上) > 第三章 列表 > (a)接口与实现 > 03A-1 从静态到动态
欢迎回来
第三章的主题是列表
与向量一样
列表也是典型的最基本的一类
所谓的线性结构
但是正如我们马上要看到的
列表结构与向量结构
在几乎所有的方面都是对称的、互补的
因此它的特点也十分的鲜明
不同数据结构所提供的操作接口
形形色色不尽相同
但是总体而言
无非分为静态和动态的两种
前者是所谓的读取式
也就是说 只是获取数据项的内容
而不对它进行修改
比如说 典型的像向量的get和search操作
而后一种呢 是所谓的写入式的操作
也就是说 确实会对数据结构的局部
乃至整体进行修改
比较典型的是 向量的insert和remove操作
相应地 那数据元素在数据结构中的
存储与组织方式呢
也可以分为静态的和动态的两种
前者是以向量为代表的
具体来说 在这个数据结构的生命期内
数据区是在创建之初统一确定的
因此其中元素在逻辑上的次序
可以与它们在物理上存储的次序
直接联系起来
存在一一对应的关系
根据秩 能直接访问到这个元素
因此在静态操作方面
这类数据结构体现出效率上的很大的优势
比如说 get只需要O(1)的时间
如果按有序排列的话
search只需要logn的时间
但是反过来 这类结构在动态操作方面
却显得力不从心
回顾一下 无论是insert还是remove
都需要将当前这个元素的后继
向后移动一格 腾出一个空位
或者反过来 有的时候需要向前递补
填补一个空位
而最坏情况乃至平均情况下
我们都需要O(n)的时间
为了改变在动态操作方面的不足
我们应该相应地改用动态的存储方式
也就是说 各个元素所占的物理空间
是在生命期内动态地、逐步地分配
这里的代表就是我们这一章的主题:列表
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)计算
--演示
--(a)计算--作业
-(b)计算模型
-(b)计算模型--作业
-(c)大O记号
-(c)大O记号--作业
-(d)算法分析
-(d)算法分析--作业
-(e)迭代与递归
-(e)迭代与递归--作业
-(xc)动态规划
-- 演示
-(xc)动态规划--作业
-本章测验--作业
-(a)接口与实现
--02A-5 复制
-(a)接口与实现--作业
-(b)可扩充向量
-(b)可扩充向量--作业
-(c)无序向量
--02C-1 概述
--02C-3 插入
--02C-6 查找
--02C-8 遍历
-(c)无序向量--作业
-(d1)有序向量:唯一化
-(d1)有序向量:唯一化--作业
-(d2)有序向量:二分查找
-(d2)有序向量:二分查找--作业
-(d3)有序向量:Fibonacci查找
-(d3)有序向量:Fibonacci查找--作业
-(d4)有序向量:二分查找(改进)
-(d4)有序向量:二分查找(改进)--作业
-(d5)有序向量:插值查找
-第二章 向量(下)--(d5)有序向量:插值查找
-(e)起泡排序
--02E-2 改进
--02E-3 反例
-(e)起泡排序--作业
-(f)归并排序
-(f)归并排序--作业
-本章测验--作业
-(a)接口与实现
--03A-4 实现
-(a)接口与实现--作业
-(b)无序列表
--03B-2 查找
-(b)无序列表--作业
-(c)有序列表
--03C-3 查找
-(c)有序列表--作业
-(d)选择排序
--03D-1 构思
--03D-2 实例
--03D-3 实现
--03D-4 推敲
--03D-6 性能
-(d)选择排序--作业
-(e)插入排序
--03E-1 经验
--03E-2 构思
--03E-3 对比
--03E-4 实例
--03E-5 实现
-(e)插入排序--作业
-(xd)习题辅导:LightHouse
-本章测验--作业
- (a)栈接口与实现
--04A-1 栈
--04A-2 实例
--04A-3 实现
- (a)栈接口与实现--作业
-(c1)栈应用:进制转换
-第四章 栈与队列--(c1)栈应用:进制转换
-(c2)栈应用:括号匹配
-(c2)栈应用:括号匹配--作业
-(c3)栈应用:栈混洗
-第四章 栈与队列--(c3)栈应用:栈混洗
-(c4)栈应用:中缀表达式求值
-(c4)栈应用:中缀表达式求值--作业
-(c5)栈应用:逆波兰表达式
-第四章 栈与队列--(c5)栈应用:逆波兰表达式
-(d)队列接口与实现
--04D-1 接口
--04D-2 实例
--04D-3 实现
-第四章 栈与队列--本章测验
-(a)树
--05A-1 动机
--05A-2 应用
-(a)树--作业
-(b)树的表示
--05B-2 父亲
--05B-3 孩子
-第五章 二叉树--(b)树的表示
-(c)二叉树
-(c)二叉树--作业
-(d)二叉树实现
-(d)二叉树实现--作业
-(e1)先序遍历
-(e1)先序遍历--作业
-(e2)中序遍历
-第五章 二叉树--(e2)中序遍历
-(e4)层次遍历
-第五章 二叉树--(e4)层次遍历
-(e5)重构
-(e5)重构--作业
-本章测验--作业
-(a)概述
-(a)概述--作业
-(b1)邻接矩阵
-(b1)邻接矩阵--作业
-(c)广度优先搜索
--06C-2 策略
--06C-3 实现
--06C-5 实例
-(c)广度优先搜索--作业
-(d)深度优先搜索
--06D-1 算法
--06D-2 框架
--06D-3 细节
-(d)深度优先搜索--作业
-第六章 图--本章测验