天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第二章 线性表

第二章线性表 令线性表 令顺序表 令链表 令顺序表与链表的比较
第二章 线性表 ❖ 线性表 ❖ 顺序表 ❖ 链表 ❖ 顺序表与链表的比较

线性表 定义:n(≥0)个数据元素的有限序列,记作 19 ●●● 19iui+19。9un 其中,;是表中数据元素,n是表长度。 特点 同一线性表中元素具有相同特性。 相邻数据元素之间存在序偶关系。 除第一个元素外,其他每一个元素有一个且仅 有一个直接前驱。 除最后一个元素外,其他每一个元素有 个且仅有一个直接后继
线性表 定义: n(0)个数据元素的有限序列,记作 (a1 , …ai-1 , ai , ai+1 ,…, an) 其中,ai 是表中数据元素,n 是表长度。 特点: ◼ 同一线性表中元素具有相同特性。 ◼ 相邻数据元素之间存在序偶关系。 ◼ 除第一个元素外,其他每一个元素有一个且仅 有一个直接前驱。 ◼ 除最后一个元素外,其他每一个元素有 一个且仅有一个直接后继

顶序表 定义:将线性表中的元素相继存放在一 个连续的存储空间中 存储结构:数组。 特点:线性表的顺序存储方式。 存取方式:顺序存取 顺序存储结构示意图 012345 458990674078
顺序表 定义:将线性表中的元素相继存放在一 个连续的存储空间中。 存储结构:数组。 特点:线性表的顺序存储方式。 存取方式:顺序存取 顺序存储结构示意图 45 89 90 67 40 78 0 1 2 3 4 5

顺序表的存储方式 LOC(a+d=loc(ai)+(i-1)L LOC(a =Loc(a)+(i-1)Z ●●●●●● ●●● aa+ a+(i-17 a+(m-D)“ile
顺序表的存储方式: LOC(a i+1) = LOC( a i )+(i-1)*l LOC(a i ) = LOC(a1 )+(i-1)*l a1 a2 … a i … … … an 1 2 … i … … … n a a+l … a+(i-1)*l … … … a+(n-1)*l idle

顺序表( Seqlist)的类型定义 define listsize00/最大允许长度 typedef int ListData typedef struct t ListData*data;/存储空间基址 int length;当前元素个数
顺序表(SeqList)的类型定义 #define ListSize 100 //最大允许长度 typedef int ListData; typedef struct { ListData * data; //存储空间基址 int length; //当前元素个数 }

顺序表基本运算 n初始化 void Initlist( Seqlist &l)i L data=( ListData *)malloc ListSize x sizeof( ListData )) if (L data== NULL)( printf(“存储分配失败!m”); exit( 1); Length= 0
顺序表基本运算 ◼ 初始化 void InitList ( SeqList & L ) { L.data = ( ListData * ) malloc ( ListSize * sizeof ( ListData ) ); if ( L.data == NULL ) { printf ( “存储分配失败!\n” ); exit (1); } L.length = 0; }

按值查找:找x在表中的位置,若查找成功 返回表项的位置,否则返回1 int Find( seqlist &l, listData x) inti=0 while (i< llength & ldatail=X) i++; if(i< Llength )return i else return -1
▪ 按值查找:找x在表中的位置,若查找成功, 返回表项的位置,否则返回-1 int Find ( SeqList &L, ListData x ) { int i = 0; while ( i < L.length && L.data[i] != x ) i++; if ( i < L.length ) return i; else return -1; }

按值查找:判断x是否在表中 int IsIn( seqlist &l, listDatax) i inti=0, found=0; while(i< llength &&! found if(L data!=x)i++; else found=l return found
按值查找:判断x是否在表中 int IsIn ( SeqList &L, ListData x ) { int i = 0, found=0; while ( i < L.length &&!found ) if(L.data[i] != x ) i++; else found=1; return found; }

n求表的长度 int Length( seq list &l)& return Llength 提取函数:在表中提取第i个元素的值 ListData GetData( seqlist &l, int i if(i>=0 &&i< Llength return Ldatai print(“参数i不合理!Ⅶn”); else
◼ 求表的长度 int Length ( SeqList & L ) { return L.length; } ◼ 提取函数:在表中提取第 i 个元素的值 ListData GetData ( SeqList &L, int i ) { if ( i >= 0 && i < L.length ) return L.data[i]; else printf ( “参数 i 不合理!\n” ); }

按值查找:寻找x的后继 int Next Seqlist &l, listData x)i int i=Find(x) if (i>0&& i0&& i< Llength )return i-1 else return -1
▪ 按值查找:寻找x的后继 int Next ( SeqList &L, ListData x ) { int i = Find(x); if ( i >0 && i 0 && i < L.length ) return i-1; else return -1; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 高自考《计算机网络基本原理》复习要点.doc
- 计算机系统维护专业(单招)课程教学大纲.doc
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第9章 项目管理器.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第8章 程序设计基础.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第7章 视图与查询.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第6章 SQL语言.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第5章 数据库综合操作.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第4章 数据库基本操作.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第3章 数据类型、表达式、函数.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第2章 Visual FoxPro 6.0概述.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第1章 数据库应用基础.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第14章 创建输出报表.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第13章 菜单系统.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第12章 表单控件.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第11章 表单设计及运行.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第10章 面向对象可视化编程基础.ppt
- 人民邮电出版社:《数据库应用与程序设计教程》课程教材电子教案(PPT课件讲稿)第0章 教学说明(21世纪高等学校计算机基础教育系列教材).ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)10.ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)08.ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)07.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第九章 查找.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第六章 树和二叉树.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第三 章 栈和队列.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第十章 排序.ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第四章 字符串(String).ppt
- 天津大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)第一章 绪论(李晓红).ppt
- 中华人民共和国国家标准:CAD通用技术规范(GB/T 17304- 1998)Specification for CAD General Technology.pdf
- 清华大学:《软件工程》课程教学资源(PPT讲义)软件过程与CMM模型.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)第一章 引论.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)发现和标识合适的对象、类和对象的标识、类和对象的细化、标识结构主题属性实例连接、表达对象做什么和说什么.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)第11、12、13、14、15、16、17、18、19、20、21、22章.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)第一章 引论.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)第3、4、5、6、7、8、9、10章.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)第11、12、13、14、15、16、17、18、19、20、21、22章.ppt
- 清华大学:《软件工程》课程教学资源_教学计划.doc
- 清华大学:《软件工程》课程教学资源(PPT讲义)课程简介(殷人昆).ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)软件工程概论.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)系統分析.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)软件需求分析.ppt
- 清华大学:《软件工程》课程教学资源(PPT讲义)软件设计方法.ppt