chapter2.1-2.2顺序表.pptVIP

  • 5
  • 0
  • 约 45页
  • 2017-03-26 发布于贵州
  • 举报
chapter2.1-2.2顺序表chapter2.1-2.2顺序表

* * * * * * * * * * * * * * * * * * * * * * * * * * 数组的空间结构 二维数组 三维数组 d1[1..3],d2[1..5],d3[1..5]分别为3个维 第2章 线性表 数组的存储 多维数组的逻辑特征:一个元素可能有多个直接前驱和多个直接后继。 内存是一维的,所以数组的存储也只能是一维的 ——数组顺序表 以行为主序(也称为“行优先”) 以列为主序(也称为“列优先”) 第2章 线性表 以列序为主序 a00 a10 … am-1,0 a01 a11 … am-1,1 a0,n-1 … am-1,n-1 … a1,n-1 α0 α1 αn-1 a00 a01 a02 a0,n-1 a10 a11 a12 a1,n-1 am-1,0 am-1,1 am-1,2 am-1,n-1 . . . . . . . . . . . . . . . . . . . . . Am×n 第2章 线性表 以行序为主序 a00 a01 … a0,n-1 a10 a11 … a1,n-1 am-1,0 … am-1,n-1 … am-1,1 α0 α1 αm-1 a00 a01 a02 a0,n-1 a10 a11 a12 a1,n-1 am-1,0 am-1,1 am-1,2 am-1,n-1 . . . . . . . . . . . . . . . . . . . . . Am×n 第2章 线性表 对于数组,一旦规定了维数和维界,如何计算数组元素的存储位置。 a00 a01 … a0,n-1 a10 a11 … a1,n-1 am-1,0 … am-1,n-1 … am-1,1 α0 α1 αm-1 设数组以行序为主序。 设二维数组 A(m×n) 其数组元素 aij 的存储位置为 LOC(i,j) = LOC(0,0) 其中,LOC(0,0)是a00的存储位置; L是每个数组元素占用的存储单元数; L 例,LOC(1,1) = LOC(0,0) + ( n×1 + 1 ) L + ( n×i + j ) L 第2章 线性表 线性表的链式存储结构的特点是: 用一组任意的存储单元存储线性表的数据元素。 存储单元可以是连续的,也可以是不连续的。 链 表 第2章 线性表 结点: 两部分信息组成,存储数据元素信息的数据域,存储直接后继存储位置信息的指针域。 data next 数据域,存放数据信息 指针域,指向下一个数据单元 单链表 第2章 线性表 head: 头指针,指向链表中第一个结点。tail:尾指针 0: 空指针,有时也表示为“NULL”或“∧”。 头结点: 记录线性表的某些性质信息(如长度)。 单链表 a1 a2 … 0 an head tail a1 a2 … 0 an head tail 第2章 线性表 typedef struct LinkNode { ELEM data ; ListNode * next ; } ; 空表: a1 a2 … 0 an head tail 0 head tail 第2章 线性表 单链表特点 缺点: 不可随机存取表中任意数据元素 不可直接获取线性表的长度 优点: 插入、删除方便 第2章 线性表 例,取第i=3个元素。 p = L-next j = 1 p = p-next j = 2 p = p-next j = 3 e = p-data = Sun 时间复杂度: O(n) Zhao Qian 0 Li L Sun tail 第2章 线性表 优点: 数据元素的插入、删除相对方便 在a,b之间插入元素x : a b p x s s-next = p-next p-next= s 第2章 线性表 删除元素b : a c p b q=p-next p -next = p -next -next ? p-next = q-next q = p-next 第2章 线性表 单链表操作 将两个有序单链表合并为一个有序单链表 通过比较不断后移指针合并链表。 第2章 线性表 pa = La-next ; pb = Lb-next ;//分别指向第一个结点 pc-next = pa ? pa : pb ;//处理剩余部分 while

文档评论(0)

1亿VIP精品文档

相关文档