【数据结构—1】线性表的概念与定义
来源:互联网 发布:视频制作软件下载 编辑:程序博客网 时间:2024/05/18 02:59
线性表的概念与定义
本文出处请点击这里
以前看伍迷老师讲了这么一个故事:
我经常下午去幼儿园接送儿子,每次都能在门口看到老师带着小朋友们,一个拉着另一个的衣服,依次从教室出来。而且我发现很有规律的是,每次他们的次序都是一样。比如我儿子排在第5个,毎次他都是在第5个,前面同样是那个小女孩,后面一直是那个小男孩。这点让我很奇怪,为什么一定要这样?
有一天我就问老师原因。她告诉我,为了保障小朋友的安全,避免漏掉小朋友, 所以给他们安排了出门的次序,事先规定好了,谁在谁的前面,谁在谁的后面。这样养成习惯后,如果有谁没有到位,他前面和后面的小朋友就会主动报告老师,某人不在。即使以后如果要外出到公园或博物馆等情况下,老师也可以很快地清点人数,万一有人走丢’也能在最快时间知道,及时去寻找。
我一想,还真是这样。小朋友们始终按照次序排队做事,出意外的情况就可能会少很多。毕竟,遵守秩序是文明的标志,应该从娃娃抓起。而且,真要有人丢失,小孩子反而是最认真负责的监督员。
嗯,这是一个很生动的例子。这种排好队的组织方式,其实就是现实中的线性表。之前我们讲了那么多概念性的东西,今天可以拿具体的对象来练手了。线性表(List):零个或多个数据元素的有限序列。有几个地方需要明确一下的:
首先它是一个序列。也就是说,元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。如果一个小朋友去拉两个小朋友后面的衣服,那就不可以排成一队了;同样,如果一个小朋友后面的衣服,被两个甚至多个小朋友拉扯,这其实是在打架,而不是有序排队。
然后,线性表强调是有限的,小朋友班级人数是有限的,元素个数当然也是有限的。事实上,在计算机中处理的对象都是有限的,那种无限的数列,只存在于数学的概念中。
如果用数学语言来进行定义:
若将线性表记为(a1, ……, ai-1, ai, ai+1, ……,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当丨=1, 2, ……, n-1时,ai有且仅有一个直接后继,当i=2, 3, ……, n时,ai有且仅有一个直接前驱。所以线性表元素的个数n (n>0)定义为线性表的长度,当n=0时,称为空表。
在非空表中的每个数据元素都有一个确定的位置,如a1是第一个数据元素,an是最后一个数据元素,ai是第i个数据元素,称i为数据元素ai在线性表中的位序。
这就是线性表的定义。
- 【数据结构—1】线性表的概念与定义
- 数据结构与算法——2.1线性表的概念
- 数据结构与算法-线性表的定义与特点
- 数据结构与算法(1)---Java语言实现:线性表的单链表定义
- 数据结构复习——线性表概念
- 数据结构——线性表概念
- 大话数据结构1 - 概念、线性表
- 数据结构与算法基础(二)之线性表的链式存储与指针的概念
- 数据结构线性表顺序结构的定义与实现C语言
- 数据结构(1)数据结构的概念和定义
- 数据结构复习-线性表的定义和基本操作
- 数据结构—线性表的顺序表示与实现
- 数据结构与算法系列-线性表-线性表的应用
- 数据结构算法代码实现——线性表的定义(一)
- 数据结构与算法(2)---Java语言实现:线性表的单链表定义:方法补充,实现单链表反转,去重
- 数据结构与算法——线性表 1
- 线性表的定义
- 线性表的定义
- 自定义悬浮窗口
- linux下调整进程、线程优先级
- 2012年5月SAT香港真题解析
- 鸡肋产品如何做好商业模式调整
- 多线程第二篇 多线程中的隐蔽问题揭秘
- 【数据结构—1】线性表的概念与定义
- 基于无向图且权重单一的最短路径Dijkstra算法——JAVA实现
- 判断一个数是奇数还是偶数
- MFC入门常用细节
- 2012年5月SAT香港真题解析
- The Managed Metadata Service or Connection is currently not available
- 多线程第三篇 经典线程同步之关键段CS
- JS框架解析1---框架介绍
- GRE写作必备句型