线性表_知识小结
线性表的定义:由n(n>=)个相同类型的数据元素(结点)a1,a2,…an组成的有限序列(a1,a2,…an),生活中有很多都是线性表,例如说:字母表,九九表,扑克牌称为复合线性表。
线性表的特征:
-
在非空的线表,有且仅有一个一个开始结点a1,它没有直接前趋,仅有一个直接后继a2。
-
有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前趋an-1,
-
其余的内部结点ai(2<=i<=n-1)都有且仅有一个直接前趋ai-1和一个直接后继ai+i。
线性表如同其名字一样,线性表里的元素(数据)的特征,有如下几种情况:第一,如果它不是没有空的话,那么每一个元素(数据)都是一个结点,第一个结点没有与它相连的结点,那么它后面会有与它相连结点。第二,只有一个结点(终端)没有后继,第三:内部结点ai(2<=i<=n-1),前趋与前结点相连,后继与后结点相连。
了解完什么是线性表后,下面了解线性表的基本运算,共有七种基本运算:
1.求表长,求线性表中元素的个数。
2.编历,从左到右(从右到左)扫描(读取)表中的各个元素。
3.按序号查找:找出表中某个元素。
4.按特征查找,按某个特定值查找线性表。
5.插入,在表中某个位置插入新元素。
6.删除,删除原表中的某个元素。
7.排序,按元素某特征值的递增(或递减)排序,重排表中的个元素。
线性表又分顺序表与链表
顺序表:顺序表的元素是紧密的保存在一起的,地址相连续的,连续的空间。这像生活中去银行办业务时或医院挂号时人们排队那样。遵循一定顺序,规规矩矩,特点:元素按顺序存放地址连续。那顺序表元素如何插入呢?这与我们排队时一样,有人来插队,被插队的前面的不受影响,被插队的后面的人则被影响了。多了一个人,意味着需要更多的空间,那么后面的人则被挤到更后面去了,那么看下顺序表插入的代码,如下图
链表:“链表不是地址连续的空间,他的插入和删除不需要移动元素,它看到内存中有空余的地址就可以毫无顾忌的挤进去。”
链表结构:单链表中构成链表的结点指向直结后级结点的指帧,逻辑上相邻的数据元素在物理上不一定相邻,单链表中组成的节点有两个域:数据域,指针域。数据域存放数据数值,指针域存放直接后继的存储地址。链表的插入
总结:线性表有n个相同的数据元素组成的有限序列,无论是顺序表,还是链表都是线性表,区别于,顺序表的规整,有序。链表,逻辑上是相邻的物理上不一定相邻的,如果说顺序表像是在排队,那么链表就像自行车的链子,在有限空间内任意曲折却是相连的。相邻相连,相邻不相连或相连不相邻。