线性表相关定义和操作 - 数据结构 - 机器学习
数据结构 - 机器学习
深度学习

当前位置:首页 » 数据结构精品文章 » 正文
线性表相关定义和操作
1161 人参与 2018年09月03日 22:32 分类 : 数据结构精品文章 评论
1、线性表的定义?
n个数据元素的有限序列(a1,a2,….,an) 。
DS = (D,R ) LIST = (D,R),
D={ai∣ai∈数据对象集,i∈1..n ,n ³0 } 元素
R={<ai-1, ai >∣ai-1, ai∈D,i∈2..n }关系
元素:是相同特性的数据对象
关系:是顺序排列的位置次序
2、线性表的特性有哪些?请举例说明。
线性关系 满足以下4点:
(1)有一个头结点, 无前驱(a1);
(2)有一个尾结点,无后继(an);
(3)ak(1<k<n )在ak-1之后,即ak为ak-1的后继;
(4)ak在ak+1之前,即ak为ak+1的前驱。
线性、有序——具线性序
例:项链、铁锁链,排队买火车票,单线联系
3、请详细叙述线性表的ADT定义。
ADT List {
数据对象:D={ai | ai ∈ ElemSet, i=1,2,...,n, n≥0 }
数据关系:R={<ai-1, ai >∣ai-1, ai∈D,i∈2..n }
4、线性表的基本操作有哪些?
{结构初始化}
{销毁结构}
{引用型操作}
{加工型操作}
} ADT List
{结构初始化}
InitList( &L )
操作结果:构造一个空的线性表 L 。
{销毁结构}
DestroyList( &L )
初始条件:线性表 L 已存在。
操作结果:销毁线性表 L 。
{引用型操作}
v ListEmpty( L )
初始条件:线性表L已存在。
操作结果:若 L 为空表,则返回 TRUE,否则返回 FALSE
v ListLength( L )
初始条件:线性表 L 已存在。
操作结果:返回 L 中元素个数。
v PriorElem( L, cur_e, &pre_e )
初始条件:线性表 L 已存在。
操作结果:若 cur_e 是 L 中的数据元素,则用 pre_e 返回它的前驱,否则操作失败,pre_e 无定义。
v NextElem( L, cur_e, &next_e )
初始条件:线性表 L 已存在。操作结果:若 cur_e 是 L 中的数据元素,则用 next_e 返回它的后继,否则操作失败,next_e 无定义。
vGetElem( L, i, &e )
初始条件:线性表 L 已存在,1≤i≤LengthList(L)。
操作结果:用 e 返回 L 中第 i 个元素的值。
v LocateElem( L, e, compare( ) )
初始条件:线性表 L 已存在,compare( ) 是元素判定函数。
操作结果:返回 L 中第1个与 e 满足关系compare( )的元素的位序。若这样的元素不存在,则返回值为0。
v ListTraverse(L, visit( ))
初始条件:线性表 L 已存在,visit( ) 为元素的访问函数。
操作结果:依次对 L 的每个元素调用函数visit( )。一旦 visit( ) 失败,则操作失败。
{加工型操作}
v ClearList( &L )
初始条件:线性表 L 已存在。
操作结果:将 L 重置为空表。
v ListInsert( &L, i, e )
初始条件:线性表 L 已存在,1≤i≤LengthList(L)+1。
操作结果:在 L 的第 i 个元素之前插入新的元素e,L的长度增1。
v ListDelete( &L, i, &e )
初始条件:线性表 L 已存在且非空,1≤i≤LengthList(L)。
操作结果:删除 L 的第 i 个元素,并用 e 返回其值,L 的长度减1。
5、关于线性表的基本操作,应注意哪些问题?
1)某数据结构上的基本操作,不是它的全部操作,而是一些常用的基本的操作运算,而每一个基本操作在实现时也可能根据不同的存储结构派生出一系列相关的运算来。
如插入运算,也可能是将新元素x插入到适当位置上等等。
2)不可能也没有必要全部定义出它的运算集,读者掌握了某一数据结构上的基本运算后,其它的运算可以通过基本运算来实现,也可以直接去实现。
3)在上面各操作中定义的线性表L仅仅是一个抽象在逻辑结构层次的线性表,尚未涉及到它的存储结构,因此每个操作在逻辑结构层次上尚不能用具体的某种程序语言写出具体的算法,而算法的实现只有在存储结构确立之后。
6、将表中x元换成y元的操作顺序是怎样的?
操作顺序
①找到x
②记住位置
③删去x
④插入y于对应位
利用已知的ADT操作
d=LocateElem(L,x,compare( ))
ListDelete(&L,d,&e)
ListInsert(&L,d,y)
7、已知集合 A 和 B,求两个集合的并集,使 A=A∪B。
从集合的观点看:只要对集合 B 中的所有元素一个一个地检查,看看在集合 A 中是否存在相同元素,若不存在,则将该元素插入到集合 A,否则舍弃之。
假设,以线性表 LA 和 LB 分别表示集合 A 和 B
对线性表作如下操作:
扩大线性表 LA,将存在于线性表 LB 中而不存在于线性表LA 中的数据元素插入到线性表 LA 中去。
步骤:
① 顺序取Lb表中元素
② 依值在La中进行查访;
③ 若不存在,则插入之。
GetElement( Lb, i, e );LocateElem( La, e, equal ) ListInsert( La, n+1,e ) void union (List &La, List Lb) { La_len=ListLength (La) ; Lb_len=ListLength (Lb); for ( i=1; i<=Lb_len; i++ ){ GetElement (Lb, i, e) ; if (!LocateElem(La,e,equal)) ListInsert (La,++La_len,e); } }//union
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=195
微信号:qq444848023 QQ号:444848023
加入【我是码农】QQ群:864689844(加群验证:我是码农)
- 数据结构之栈和队列-基本概念和术语汇总2018-08-18 08:59
- 有哪些研究数据结构的好的方法?2018-08-18 09:05
- 学习数据数据结构的意义2018-08-18 09:05
- 什么是算法? 算法的5个基本特性是什么? 算法设计的要求?2018-08-18 09:04
网站分类
- 数据结构
- 数据结构视频教程
- 数据结构练习题
- 数据结构试卷
- 数据结构习题解析
- 数据结构电子书
- 数据结构精品文章
- 区块链
- 区块链精品文章
- 区块链电子书
- 大数据
- 大数据精品文章
- 大数据电子书
- 机器学习
- 机器学习精品文章
- 机器学习电子书
- 面试笔试
- 物联网/云计算
标签列表
- 数据结构 (39)
- 数据结构电子书 (20)
- 数据结构习题解析 (8)
- 数据结构试卷 (10)
- 区块链是什么 (261)
- 数据结构视频教程 (31)
- 大数据技术与应用 (12)
- 百面机器学习 (14)
- 机器学电子书 (29)
- 大数据电子书 (37)
- 程序员面试 (10)
- RFID (21)
最近发表
- 找出数组中有3个出现一次的数字
- 《百面机器学习》电子书下载
- 区块链精品电子书《深度探索区块链:Hyperledger技术与应用_区块链技术丛书》张增骏
- 区块链精品电子书《比特币:一个虚幻而真实的金融世界》
- 区块链精品电子书《图说区块链》-徐明星 & 田颖 & 李霁月
- 区块链精品电子书《是非区块链:技术、投机与泡沫》-英国《金融时报》
- 区块链精品电子书《商业区块链:开启加密经济新时代》-威廉·穆贾雅
- 区块链精品电子书《人工智能时代,一本书读懂区块链金融 (互联网_时代企业管理实战系列)》-马兆林
-
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https'){
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else{
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试
var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!
评论专区