手机浏览器扫描二维码访问
(例:UC浏览器、QQ浏览器)
EE小说手机版网址 m.eexs.cc
1、线性表的逻辑结构线性结构是最常用、最简单的一种数据结构。
而线性表是一种典型的线性结构。
其基本特点是线性表中的数据元素是有序且是有限的。
在这种结构中:1存在一个唯一的被称为“第一个”
的数据元素;2存在一个唯一的被称为“最后一个”
的数据元素;3除第一个元素外,每个元素均有唯一一个直接前驱;4除最后一个元素外,每个元素均有唯一一个直接后继。
例如:线性序列a1,a2,…an线性表:是由n(n≧0)个数据元素(结点)a1,a2,…an组成的有限序列。
该序列中的所有结点具有相同的数据类型。
其中数据元素的个数n称为线性表的长度。
当n=0时,称为空表。
当n>0时,将非空的线性表记作:(a1,a2,…an)a1称为线性表的第一个(首)结点,an称为线性表的最后一个(尾)结点。
a1,a2,…ai-1都是ai(2≦i≦n)的前驱,其中ai-1是ai的直接前驱;ai+1,ai+2,…an都是ai(1≦i≦n-1)的后继,其中ai+1。
2、顺序表顺序存储:把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。
用这种方法存储的线性表简称顺序表。
有非空的线性表:(a1,a2,…an)。
顺序存储如图所示。
顺序存储的线性表的特点:◆线性表的逻辑顺序与物理顺序一致;◆数据元素之间的关系是以元素在计算机内“物理位置相邻”
来体现。
设有非空的线性表:(a1,a2,…an)。
顺序存储如图所示。
设线性表的每个元素需占用l个存储单元,以所占的第一个单元的存储地址作为数据元素的存储位置。
则线性表中第i+1个数据元素的存储位置loc(ai+1)和第i个数据元素的存储位置loc(ai)之间满足下列关系:loc(ai+1)=loc(ai)+l线性表的第i个数据元素ai的存储位置为:数组具有随机存取的特性loc(ai)=loc(a0)+(i)l在高级语言(如c语言)环境下:数组具有随机存取的特性,因此,借助数组来描述顺序表。
除了用数组来存储线性表的元素之外,顺序表还应该有表示线性表的长度属性,所以用结构类型来定义顺序表类型。
defeaize100数组最大长度typedefstruct{定义线性表结构体tdata[aize];线性表存储元素的数组tlength;记录线性表的长度}sqlist;线性表的名称顺序表小结。
1、单链表的定义链式存储:用一组任意的存储单元存储线性表中的数据元素。
用这种方法存储的线性表简称线性链表。
为了正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其直接后继结点的地址(或位置),称为指针(poter)或链(lk),这两部分组成了链表中的结点结构,链表是通过每个结点的指针域将线性表的n个结点按其逻辑次序链接在一起的。
每一个结只包含一个指针域的链表,称为单链表。
存储链表中结点的一组任意的存储单元可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。
链表中结点的逻辑顺序和物理顺序不一定相同。