北京邮电大学计算机学院数据结构第二章第一部分教材.ppt

北京邮电大学计算机学院数据结构第二章第一部分教材.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 线性表(一) 张成文 北京邮电大学计算机学院 例1 分析26 个英文字母组成的英文表是什么结构。 ( A, B, C, D, …… , Z) 顺序表的存储特点 1). 逻辑上相邻的数据元素,其物理上也相邻; 2). 若已知表中首元素在存储器中的位置,则其他元素存放位置亦可求出(利用数组V[n]的下标)。 例1 设有一维数组M,下标的范围是0到9,每个数组元素用相邻的5个字节存储。存储器按字节编址,设存储数组元素M[0]的第一个字节的地址是98,则M[3]的第一个字节的地址是多少? 用数组V来存放26个英文字母组成的线性表(a,b,c,…,z),写出在顺序结构上生成和显示该表的C语言程序。 顺序表的基本运算 1. 线性表元素插入操作 插入一个记录,对线性表结构的影响可以从以下两个方面分析。 (1) 若插入记录的位置在表的最后,那么只需在表后添加一个新记录元素,同时使表的当前长度修正为n+1即可。 (2) 若插入记录的位置出现在线性表的中间,则情况比较复杂。 线性表的插入算法步骤: (1) 检测线性表是否有空间可供插入; (2) 从最末一个元素an到ai逐个后移,腾出一个空位或空的存储单元i; (3) 插入一个新的元素,修正线性表的当前长度。 下图给出了根据线性表插入算法思想而设计的程序流程框图。 根据程序流程框图,线性表插入算法程序: /* 线性表的插入 */ INEGLIST(v[ ], i, n, m, t) /* v是线性表,i是插入新元素的位置,n是线性表的长度,m是线性表的最大长度,t是插入的新元素 */ { int j; if(n!=0) if(m==n) puts(“出错”); /* 线性表满,不能插入 */ else { for(j=n;j=i; j--) v[j+1]=v[j]; /* 从表末元素到序号为i的元素逐个下移 */ v[i]=t; /* 新元素插入 */ n++; /* 修正表长 */ } else { v[l]=t; n=1; /* 表空,插入元素为线性表的第一个元素 */ } } 2. 线性表元素删除操作 下面给出线性表删除一个元素的算法,被删除的元素被保留在out中以防丢失。 /* 线性表元素的删除 */ DELEGLIST(v[], i, n) /* v是线性表,i是被删除元素的位置,n是线性表的长度 */ { int j; out=v[i]; for(j=i;j=n-1; j++) v[j]=v[j+1]; /* 从i+1到n位置上的元素逐个上移 */ n--; } * 线性表引例 例 某大学欲进行一次数学竞赛,约有200名学生报名参赛。现将报名登记表(如下表所示)存入计算机以便完成如下工作: (1) 能正确录入学生记录; (2) 按成绩对该表进行重新排序; (3) 按学号或姓名查询学生成绩。 报 名 登 记 表 学 号 姓 名 性 别 成 绩 2003 张三 男 84 2024 李四 男 79 2035 王五 女 75 线性表的定义和逻辑结构 (a1, a2, … ai-1,ai, ai+1 ,…, an) 线性表用数据元素的有限序列表示 n=0时称为 数据元素 线性起点 ai的直接前趋 ai的直接后继 下标,是元素的序号,表示元素在表中的位置 n为元素总个数,即表长。n≥0 空表 线性终点 : : : : : 2003级材料02班 18 女 张珍珍 012002009904 2003级材料02班 18 女 郭 芳 012002009801 2003级材料01班 17 男 彭 隽 012002009710 2003级材料01班 18 男 武 锐 012002009613 2003级材料01班 18 男 刘禹圻 012002009524 班级 年龄 性别 姓名 学号 例2 分析学生情况登记表是什么结构。 分析:数据元素都是同类型(记录),元素间关系是线性的。 分析: 数据元素都是同类型(字母), 元素间关系是线性的。 注意:同一线性表中的元素必定具有相同特性 ! 线性表的特征 对于非空的线性表: ① 有且仅有一个开始结点a1,没有直接前趋,有且仅有一个直接后继a2; ② 有且仅有一个终结结点an,没有直接后继,有且仅有一个直接前趋an-1; ?③ 其余的内部结点ai(2≤i≤n-1)都有且仅有一个直接前趋ai-1和一个a

文档评论(0)

w5544434 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档