




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 线性表,2.1 线性表的定义和运算,一、线性表的定义:,1、定义: 线性表 L是由n个元素a1,a2,an组成的有限序列。记作L=(a1,a2, ,an) 注:(1)n=0为表长; (2)n=0时为L空表;记作L=() 如:字母表A,B,C,Z 数字表(0,1,2,3,9) (同一表中,元素类型相同。),2、特点: , ai-1 , ai , ai+1 , ai-1 称为 ai 的直接前驱, ai+1称为 ai 的直接后继。 除首元素外每个元素有且仅有一个直接前驱; 除尾元素外每个元素有且仅有一个直接后继;,二、线性表的基本运算,(1)初始化 initial_list(L) 建空表; (2)求表长 list_length(L) (3)按序号取元素 get_element(L,i) (4)按值查找 list_locate(L,x),(5)插入 list_insert(L,i,x) 在表中第i个位置上插入元素x; 1 i n+1 (6)删除 list_delete(L,i) 删除表中第i个元素; 1 i n,2.2 顺序表,一、线性表的顺序存储结构,1、定义: 假设有一个足够大的连续的存储空间,将线性表中的元素按其逻辑次序依次存储到这一存储空间中,由此方式存储的线性表称为顺序表。,顺序表示意图,n-1,2、类型描述 #define maxlen 100 typedef struct elementtype datamaxlen; int listlen; seqlist; 变量定义,如:seqlist L,L1; 注:a:datamaxlen的下标是0到maxlen-1; b:listlen是线性表的长度,最后一个元素下标是listlen-1;,3、顺序表的特点: 逻辑上相邻的元素,其存储地址也相邻; 即,可以随机存取元素。,二、顺序表运算的实现,1、初始化(建空表): void initial_list(seqlist *L) L-listlen=0; 2、求表长: int list_length(seqlist L) return L.listlen; ,3、按序号取元素: void get_element(seqlist L,int i,elementtype ,4、按值查找: (找到则返回其序号,否则返回0) int list_locate(seqlist L,elementtype x) int i; for(i=0;iL.listlen;i+) if (L.datai=x) return(i+1); return(0); ,5、插入:,分析: 首先判断顺序表是否为满,以及i的取值; 若可以插入,则执行下列操作: (1)将aian后移一位; (2)插入x; (3)表长+1,void list_insert( seqlist *L,int i,elementtype x ) int j; if (L-listlen=maxlen) error(“溢出”); else if(iL-listlen+1) error(“序号错误”); else for(j=L-listlen-1;j=i-1;j-) L-dataj+1=L.dataj; L-datai-1=x; L-listlen+; ,插入算法的时间分析 在i=1,2,n+1时, 元素移动的次数分为n,n-1,0。 平均移动次数(等概率情况下): (0+1+n)/(n+1)=n/2,6、删除:,分析: 首先判断顺序表是否为空以及i的取值; 可以则删除: (1)ai+1an往前移一位; (2)表长-1;,void list_delete(seqlist *L,int i) int j; if (L-listlenL-listlen) error(“序号错误”); else for (j=i; jlistlen-1; j+) L-dataj-1=L-dataj; L-listlen-; ,删除算法的时间分析: 在i=1,2,n时,元素移动的次数分别为n-1,n-2,,0。 平均移动次数: (0+1+(n-1)/n=(n-1)/2,三、顺序表的应用,已知顺序表L递增有序,设计算法,在L中插入元素x,使得L依然递增有序。,例,算法如下: void insert( seqlist
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿教育学 幼儿教育概述课件
- 打造幼教服务产业链园区生态圈
- 2024-2025学年下学期高二生物人教版期末必刷常考题之生态系统的物质循环
- 部编版二年级下册第七单元《大象的耳朵》教案
- 8 4 抛物线-2026版53高考数学总复习A版精炼
- 2025届河北省唐山市高三二模语文试题(解析版)
- 2024-2025学年四川省雅安市高三第一次诊断性考试语文试题(解析版)
- 2024-2025学年山东省威海市文登区高三第一次模拟语文试题(解析版)
- it项目应急预案
- 信访问题回复函
- 亚声威格入职培训测试(武汉)附有答案
- 洗染行业消费纠纷处理指南
- GB/T 19995.1-2005天然材料体育场地使用要求及检验方法第1部分:足球场地天然草面层
- 山西省卫生院社区卫生服务中心信息名单目录
- 全民经纪人协议书
- 护理学课件-铺床法
- GB∕T 31062-2014 聚合物多元醇
- 氧、氩、二氧化碳气体充装企业风险点分级管控资料
- 人教版 2021-2022学年 五年级下册数学期末测试试卷(一)含答案
- 西门子SAMA图DEH逻辑讲解
- 国家开放大学《土木工程力学(本)》形考作业1-5参考答案
评论
0/150
提交评论