网易云课堂-数据结构-第二讲-线性结构
来源:互联网 发布:淘宝 卓诗尼 编辑:程序博客网 时间:2024/06/05 04:38
2.1 线性表及其实现
【分析】如何表示多项式?
多项式的关键数据:
多项式的项数n
各项系数ai及指数i
方法1:顺序存储结构直接表示
数组各分量对应多项式各项:
a[ i ] : 项 x^i 的系数 ai
两个多项式相加:变成两个数组对应分量相加。
方法2:顺序存储结构表示非零项
用结构数组表示:数组分量是由系数 ai ,指数 i 组成的结构,对应一个非零项。
按指数大小储存。
相加过程:从头开始,比较两个多项式当前对应项的指数。
方法3:链表结构存储非零项
链表中每个结点存储多项式中的一个非零项,包括系数和指数两个数据域以及一个指针域。
多项式表示问题的启示:
1.同一个问题可以有不同的表示(存储)方法
2.有一类共性问题:有序线性序列的组织和管理
“线性表(linear list)”:由同类型数据元素构成有序序列的线性结构
表中元素的个数称为线性表的长度
线性表没有元素时,称为空表
表起始位置称表头,表结束位置称表尾
线性表的抽象数据类型描述——
类型名称:线性表
数据对象集:线性表是n(≥0)个元素构成的有序序列
操作集:~
1.建立一个空表
2.表里找位序为k的元素
3.在表里找元素第一次出现的位置
4.在位序前插入新元素
5.删除指定元素
6.返回线性表的长度n
线性表的顺序存储实现
利用数组的连续存储空间顺序存放线性表的各元素
~
~
主要操作的实现
1.初始化(建立空的顺序表)
~
2.查找
~
3,插入
~
循环-先移动,再插入。
插入实现的代码
~~~要自己打一遍这里的代码~~~
4.删除(删除表的)
~删除操作实现~
~~~删除实现的代码~~~
线性表的链式存储实现
不要求逻辑上相邻的两个元素物理上也相连;通过“链”建立起数据元素之间的逻辑关系。
插入/删除不需要移动数据元素,只需要修改“链”。
1.求表长(链表-遍历)
~~~要自己打一遍这里的代码~~~
2.查找
(1)按序号查找:FindKth
~
p = p->Next;
~
(2)按值查找
~
while(p ! )
3.插入(一定要知道插在哪个结点的后面,即前一个结点是谁)
~
s->Next = p->Next;
p->Next = s;
~
不可以把这两句代码的顺序调换,因为调换后会变成 p->Next 指向s,s-> 指向p->Next也就是
- 网易云课堂-数据结构-第二讲-线性结构
- 网易云课堂-数据结构-第二讲-线性结构
- 网易云课堂-数据结构-第一讲-基本概念
- 02-线性结构1 一元多项式的乘法与加法运算[网易云课堂-数据结构]
- 第二讲 线性结构
- 网易云课堂-数据结构
- 陈越、何钦铭《数据结构》第二讲线性结构 笔记
- 数据结构——第二讲、线性结构(1)
- 数据结构——第二讲、线性结构(2)
- 数据结构——第二讲、线性结构(3)
- 数据结构——第二讲、线性结构(4)
- 数据结构——第二讲、线性结构(5)
- 数据结构——第二讲、线性结构(6)
- 数据结构——第二讲、线性结构(7)
- 数据结构——第二讲、线性结构(8)
- 网易云课堂-陈越、何钦铭-数据结构-2016春,02-线性结构1 一元多项式的乘法与加法运算,学习笔记
- android 网易云课堂第二周笔记
- 数据结构:图的存储结构之邻接矩阵(摘自网易云课堂)
- 第二周Palindrome Number回文数
- fastdfs分布式文件系统之TrackerServer连接池实现
- redis操作命令
- MD5 加密
- memset用法详解
- 网易云课堂-数据结构-第二讲-线性结构
- 第三周项目四(2)—顺序表的应用
- ClassLoader原理与实践(分享讲稿整理,不放图)
- 欢迎使用CSDN-markdown编辑器
- 图像增强之03锐化
- 2017Android面试题解析 --(一)
- VS2010——动态库的错误号反馈
- HDU3493 The Little Architect 【BM算法推公式+矩阵快速幂】
- POJ