河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第2章 线性表(定义、顺序存储结构、链式存储结构)

第2章线性表 2.1线性表的定义 211什么是线性表 线性表是具有相同特性的数据元素的一个有限序列。其特 征如下 ●所有数据元素类型相同; ●线性表是有限个数据元素构成的; ●线性表中数据元素是与位置有关的,通常从1开始 编号,每个数据元素有唯一的序号,这一点表明线 性表不同于集合
第2章 线性表 2.1 线性表的定义 2.1.1 什么是线性表 线性表是具有相同特性的数据元素的一个有限序列。其特 征如下: 所有数据元素类型相同; 线性表是有限个数据元素构成的; 线性表中数据元素是与位置有关的,通常从1开始 编号,每个数据元素有唯一的序号,这一点表明线 性表不同于集合

线性表的逻辑结构一般表示为:(a1a2,,n1,.an) 用图形表示的逻辑结构如下图所示 首元素 尾元素 a1)(a2 a)→ 其中,用n(m≥0)表示线性表的长度(即线性表中数据 元素的个数)。当n=0时,表示线性表是一个空表。 在线性表中,每个元素至多只有一个前趋元素并且 至多只有一个后继元素。这是线性表的逻辑特征
线性表的逻辑结构一般表示为:(a1 ,a2 ,…,ai ,ai+1,…an )。 用图形表示的逻辑结构如下图所示。 a1 a2 ai ai+1 an a … … 1 a2 ai ai+1 an … … 首元素 尾元素 其中,用n(n≥0)表示线性表的长度(即线性表中数据 元素的个数)。当n=0时,表示线性表是一个空表。 在线性表中,每个元素至多只有一个前趋元素并且 至多只有一个后继元素。这是线性表的逻辑特征

212线性表的抽象数据类型描述 ADT List 数据对象 D={a11≤i≤n,n≥0,a为 Elemtype类型 ElemType是自定义类型,本章中假设 ElemType为 Istring 数据关系: r={<a,a1+1-|aa+1∈D=1,…,n-1 基本运算 void create list( (stringl split):由spli数组中的元素建立存储结构。 string Displisto:将线性表中的所有元素构成一个字符串返回。 int ListLengtho:求线性表的长度 bool getelem(inti, restring e):求线性表中序号为的元素值e int Locate elem( string e):按元素值e查找其序号。 bool ListInsert(int i, stringe):插入数据元素e作为线性表的第个元素。 bool listDelete(int i; ref string e):在线性表中删除第个数据元素e
2.1.2 线性表的抽象数据类型描述 ADT List { 数据对象: D={ai | 1≤i≤n,n≥0,ai为ElemType类型} //ElemType是自定义类型,本章中假设ElemType为string 数据关系: r={ | ai ,ai+1∈D,i=1,…,n-1} 基本运算: void CreateList(string[] split):由split数组中的元素建立存储结构。 string DispList():将线性表中的所有元素构成一个字符串返回。 int ListLength():求线性表的长度。 bool GetElem(int i,ref string e):求线性表中序号为i的元素值e int LocateElem(string e):按元素值e查找其序号。 bool ListInsert(int i,string e):插入数据元素e作为线性表的第i个元素。 bool ListDelete(int i,ref string e):在线性表中删除第i个数据元素e。 }

2.2线性表的顺序存储结构 221线性表的顺序存储结构一顺序表 class sqlistclass 顺序表类 const int MaxSize=100;/数组的长度 public stringl data; /1放顺序表中元素 public int length /1放顺序表的长度 public sqlistclasso /构造函数,实现data和 ength的初始化 i data=new string MaxSize; length=0 线性表的基本运算算法 数组下标01… i-2 Max Size-I data数组a1a2 arl a+1 空闲
2.2 线性表的顺序存储结构 2.2.1 线性表的顺序存储结构—顺序表 class SqListClass //顺序表类 { const int MaxSize=100; //数组的长度 public string[] data; //存放顺序表中元素 public int length; //存放顺序表的长度 public SqListClass() //构造函数,实现data和length的初始化 { data=new string[MaxSize]; length=0; } //线性表的基本运算算法 } data 数组 a1 数组下标 0 a2 1 …… … ai -1 i-2 ai i-1 ai+1 i …… … an n-1 空闲 MaxSize-1

说明: Sqlistclass类的一个对象L称为顺序表对象L,也 简称为顺序表L,其中主要有data、 length字段和相关的运算 方法,通过 L data或 Llength对字段进行操作,后面的顺序栈 顺序队、顺序串等都采用相似的方式。 SqlistClass l= new sqlistClasso; data length 其他方法等
说明:SqListClass类的一个对象L称为顺序表对象L,也 简称为顺序表L,其中主要有data、length字段和相关的运算 方法,通过L.data或L.length对字段进行操作,后面的顺序栈、 顺序队、顺序串等都采用相似的方式。 data length 其他方法等 L SqListClass L=new SqListClass();

222顺序表基本运算的实现 建立顺序表 其方法是将给定的含有若干个元素的数组 Split的每个元 素依次放入到顺序表中,并将其长度赋给顺序表的 length字 段。对应的算法如下: public void Createlist( stringl split)/由 split中的元素建立顺序表 i int i; for (i=0; i<split Length; i++) data[i=split[; length=i
2.2.2 顺序表基本运算的实现 1.建立顺序表 其方法是将给定的含有若干个元素的数组split的每个元 素依次放入到顺序表中,并将其长度赋给顺序表的length字 段。对应的算法如下: public void CreateList(string[] split) //由split中的元素建立顺序表 { int i; for (i=0;i<split.Length;i++) data[i]=split[i]; length=i; }

2.顺序表基本运算算法 (1)输出线性表 Displist0 该运算是依次输出顺序表中各数组元素的值,这里是将顺 序表中的所有元素构成一个字符串返回。对应的算法如下: public string Displisto if (length>0) string mystr-data[ 0; for (i=l; i<length; i++) /扫描顺序表中各元素值 mystr+="+data j; return mystr; else return"空串";
2.顺序表基本运算算法 (1)输出线性表DispList() 该运算是依次输出顺序表中各数组元素的值,这里是将顺 序表中的所有元素构成一个字符串返回。对应的算法如下: public string DispList() { int i; if (length>0) { string mystr=data[0]; for (i=1;i<length;i++) //扫描顺序表中各元素值 mystr+=" "+data[i]; return mystr; } else return "空串"; }

(2)求线性表的长度 ListLengthe0 该运算返回顺序表的长度即其中的元素个数。实际上只需 返回 length字段的值即可。对应的算法如下 public int ListLengtho return length;
(2)求线性表的长度ListLength() 该运算返回顺序表的长度即其中的元素个数。实际上只需 返回length字段的值即可。对应的算法如下: public int ListLength() { return length; }

(3)求线性表中某个数据元素值 Getelen(e) 该运算用变量e表示线性表中逻辑序号为)元素,当逻辑 序号正确时取e= datai-1并返回true,否则返回fae对应的 算法如下: public bool GetElem(inti, ref string e) {if(i length) return false /参数错误时返回 false e=datai-1: /取元素值 return true; ∥1功找到元素时返回rue
(3)求线性表中某个数据元素值GetElem(i,e) 该运算用变量e表示线性表中逻辑序号为i的元素,当逻辑 序号i正确时取e=data[i-1]并返回true,否则返回false。对应的 算法如下: public bool GetElem(int i,ref string e) { if (ilength) return false; //参数错误时返回false e=data[i-1]; //取元素值 return true; //成功找到元素时返回true }

(4)按元素值查找 LocateElem(e) 该运算顺序查找第一个值与e相等的元素的逻辑序号。若 顺序表中不存在这样的元素,则返回值为0。对应的算法如下 public int Locate Elem(string e) int i=0 while (iclength & string Compare(datail,e)=0) i++ /查找元素e if (i>=length /未找到时返回0 return 0 else eturn i+1 /找到后返回其逻辑序号
(4)按元素值查找LocateElem(e) 该运算顺序查找第一个值与e相等的元素的逻辑序号。若 顺序表中不存在这样的元素,则返回值为0。对应的算法如下: public int LocateElem(string e) { int i=0; while (i=length) //未找到时返回0 return 0; else return i+1; //找到后返回其逻辑序号 }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第1章 课程绪论(主讲:吕雅丽).ppt
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验九 排序方法的实现.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验八 查找方法的实现.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验七 图的存储及操作.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验六 二叉树的存储及操作.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验四 队列的存储及操作.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验五 数组的存储及操作.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验三 栈的存储及操作.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验二 单链表的存储及操作.doc
- 河南中医药大学:《数据结构》课程教学资源(实验指导)实验一 顺序表的存储及操作.doc
- 河南中医药大学:《数据结构》课程实验教学大纲 Data Structure.pdf
- 河南中医药大学:《数据结构》课程教学大纲 Data Structure.pdf
- 河南中医药大学:《数据库原理》课程教学资源(课PPT课件讲稿)第六章 关系数据理论.pdf
- 河南中医药大学:《数据库原理》课程教学资源(课PPT课件讲稿)第七章 数据库设计.pdf
- 河南中医药大学:《数据库原理》课程教学资源(课PPT课件讲稿)第四章 数据库安全性.pdf
- 河南中医药大学:《数据库原理》课程教学资源(课PPT课件讲稿)第五章 数据库完整性.pdf
- 河南中医药大学:《数据库原理》课程教学资源(课PPT课件讲稿)第二章 关系数据库.pdf
- 河南中医药大学:《数据库原理》课程教学资源(课PPT课件讲稿)第三章 关系数据库标准语言SQL.pdf
- 河南中医药大学:《数据库原理》课程教学资源(课PPT课件讲稿)第一章 绪论.ppt
- 河南中医药大学:《数据库原理 The Principle of Database》课程教学资源(课件讲稿)第十一章 数据库并发控制 第十七讲 数据库并发控制.pdf
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第3章 栈和队列.ppt
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第4章 串(基本概念、存储结构、模式匹配).ppt
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第5章 数组和广义表 5.1 数组 5.2 稀疏矩阵 5.3 递归 5.4 广义表.ppt
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第6章 树和二叉树.ppt
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第7章 图 7.1 图的基本概念 7.2 图的存储结构 7.3 图的遍历 7.4 生成树.ppt
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第8章 查找 8.1 查找的基本概念 8.2 线性表的查找 8.3 树表的查找 8.4 哈希表查找.ppt
- 河南中医药大学:《数据结构与算法》课程PPT教学课件(C#语言描述)第9章 内排序(基本概念、插入、交换、选择、归并、基数排序、方法的比较和选择).ppt
- 河南中医药大学:《ASP.NET应用开发》实验指导书(ASP.NET基础).doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(ASP.NET的常用控件).doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(验证控件).doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(使用数据源控件访问数据库).doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(使用数据源控件访问数据库).doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(使用.NET数据提供程序访问数据库).doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(数据绑定与数据绑定控件).doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(使用DataSet访问数据库)1.doc
- 河南中医药大学:《ASP.NET应用开发》实验指导书(使用DataSet访问数据库)2.doc
- 电子工业出版社:《ASP.NET数据库网站设计教程(C#版)》配套教学资源(PPT课件)第一章 ASP.NET基础.ppt
- 电子工业出版社:《ASP.NET数据库网站设计教程(C#版)》配套教学资源(PPT课件)第二章 ASP.NET常用服务器标准控件.ppt
- 电子工业出版社:《ASP.NET数据库网站设计教程(C#版)》配套教学资源(PPT课件)第二章 ASP.NET常用服务器标准控件(1/3).ppt
- 电子工业出版社:《ASP.NET数据库网站设计教程(C#版)》配套教学资源(PPT课件)第三章 ASP.NET验证控件.ppt