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

第二章线性表 线性表 顺序表 单链表 线性表的物理实现 ·循环链表 双向链表单链表的变化形就 多项式链表的应用
1 第二章 线性表 线性表 顺序表 单链表 循环链表 双向链表 多项式 线性表的物理实现 单链表的变化形式 链表的应用

第二章线性表 §2.1线性表 定义 n(≥0)个表项的有限序列 u142…n a是表项,m是表长度。 第一个表项是表头,最后一个是表尾
2 第二章 线性表 §2.1 线性表 • 定义 n( 0)个表项的有限序列 L =(a1 , a2 , …, an) – ai是表项,n是表长度。 – 第一个表项是表头,最后一个是表尾

线性表的特点 为简单起见,假定表中元素的数据类型 相同 线性表中,结点和结点间的关系是一对 的 有序表和无序表 线性表的存储方式 顺序存储方式—顺序表 链表存储方式—链表
• 线性表的特点 –为简单起见,假定表中元素的数据类型 相同 – 线性表中,结点和结点间的关系是一对 一的 – 有序表和无序表 • 线性表的存储方式 –顺序存储方式 —— 顺序表 – 链表存储方式 —— 链表 a1 a2 a3 a4 a5 a6 3

§22顺序表 顺序表可用一维数组实现 c i=0时 LoC (i LOC(i-1)+l,i>0时 0123456789 a35274918605477834102 乙* LOC (i)=LOC(i-1)+l=a+i*
§2.2 顺序表 顺序表可用一维数组实现 − + = = ( ) , 0 时 α , 0 时 ( ) LOC i l i i LOC i 1 LOC ( i ) = LOC ( i -1 ) + l =α+ i*l 4

顺序表的定义 将线性表中的元素相继存放在一个连续的存 储空间中 顺序表的特点 各表项的逻辑顺序与物理顺序一致 对各个表项可以顺序访问,也可以随机访问
顺序表的定义 - 将线性表中的元素相继存放在一个连续的存 储空间中 顺序表的特点 - 各表项的逻辑顺序与物理顺序一致 - 对各个表项可以顺序访问,也可以随机访问 5

结点的变体(异质数据) 25s33.36274“t1.0“6 若想在线性表中存放不同类型的数据,可采用等价 定义unon: typedef union int val: 按 data. va引用 char c h 按 data. ch引用 float dir. 按 data. diri引用 union data * link;/按data.ink引用 }data;/蹩体上是同一类型data
6 结点的变体(异质数据) • 若想在线性表中存放不同类型的数据,可采用等价 定义union: typedef union { int val; //按data.val引用 char ch; //按data.ch引用 float dir; //按data.dir引用 union data *link; //按data.link引用 } data; //整体上是同一类型data 25 ‘s’ 3.3 62 74 ‘t’ 1.0 ‘6’

顺序表( Senlis类的定义 #include ∥定义在“ seqlist. h”中 #include nclude“ linear list. h" const int defaultsize =100 template class e> class Seqlist: public linearlistse>& protected E *data /存放数组 int max Size:大可容纳表项的项数 int last ∥当前已存表项的最后位置 void resize( int newSize);/改变数组空间大小
7 顺序表(SeqList)类的定义 #include //定义在“seqList.h”中 #include #include “linearList.h" const int defaultSize = 100; template class SeqList: public LinearList { protected: E *data; //存放数组 int maxSize; //最大可容纳表项的项数 int last; //当前已存表项的最后位置 void reSize(int newSize); //改变数组空间大小

public Seqlist(int sz= defaultsize ) 构造函数 Seqlist(seqlist& l) ∥复制构造函数 Seqlisto deletel] data; ∥析构函数 int Size( const{ return max Size;}求表最大容量 int Length0 const{ return last-+l;}计算表长度 int Search(E& x)const ∥搜索在表中位置,函数返回表项序号 int Locate(int 1)const; ∥定位第1个表项,函数返回表项序号 bool getData(inti,E&x) const,/取第个表项的值 bool Insert(int i,E x) /插入 bool remove(int i, e& x) /删除
8 public: SeqList(int sz = defaultSize); //构造函数 SeqList(SeqList& L); //复制构造函数 ~SeqList() {delete[ ] data;} //析构函数 int Size() const {return maxSize;} //求表最大容量 int Length() const {return last+1;} //计算表长度 int Search(E& x) const; //搜索x在表中位置,函数返回表项序号 int Locate(int i) const; //定位第 i 个表项,函数返回表项序号 bool getData(int i, E& x) const; //取第i个表项的值 bool Insert(int i, E x); //插入 bool Remove(int i, E& x); //删除 };

顺序表的构造函数 include∥操作“exit”存放在此 # include" seqlist. h/操作实现放在 seqList. cpp? template Seqlist: Seqlist(int szi if(z>0){ maxSize=sz: last=-1 daa=newE[ maxsize];∥刨建表存储数组 if(data=NULL){∥2态分配失败 cerr<<"存储分配错误!"<<endl: eX
9 顺序表的构造函数 #include //操作“exit”存放在此 #include “seqList.h” //操作实现放在“seqList.cpp” template SeqList::SeqList(int sz) { if (sz > 0) { maxSize = sz; last = -1; data = new E[maxSize]; //创建表存储数组 if (data == NULL){ //动态分配失败 cerr << "存储分配错误!" << endl; exit(1); } } };

复制构造函数 template Seqlist: Seqlist( Seqlist&l)i maxSize=L Size; last=L. Length0-1 E value data=newE[ maxSize];1创建存储数组 if ( data== NULL) ∥励动态分配失败 {cerr<<"存储分配错误!"<<endl;exi(1);} for(inti=1;i<= last+1;计++)传送各个表项 (L getData(i, value); datai-1=value; 1
10 template SeqList::SeqList ( SeqList& L ) { maxSize = L.Size(); last = L.Length()-1; E value; data = new E[maxSize]; //创建存储数组 if (data == NULL) //动态分配失败 {cerr << "存储分配错误!" << endl; exit(1);} for (int i = 1; i <= last+1; i++) //传送各个表项 {L.getData(i, value); data[i-1] = value;} }; 复制构造函数
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 大庆职业学院:《计算机网络技术基础》课程电子教案(PPT教学课件)第3章 网络体系结构与协议.ppt
- 《微型计算机原理及应用》课程教学资源(PPT课件讲稿)第6章 输入输出与中断.ppt
- 信息化技术中心:网络安全意识培训(PPT讲稿).pptx
- 徐州师范大学:《电子商务 Electronic Business》课程教学资源(PPT课件讲稿)电子商务安全实验、数字证书应用.ppt
- Generic Programming(PPT课件讲稿)Templates and Overloading.ppt
- 西安电子科技大学:《操作系统 Operating Systems》课程教学资源(PPT课件讲稿)Chapter 01 Introduction(主讲:高海昌).ppt
- 四川大学:《数据结构》课程教学资源(PPT课件讲稿)第七章 查找 Search.ppt
- 西安电子科技大学:《现代操作系统》课程PPT教学课件(讲稿)作业管理 Job Management.ppt
- 《多媒体技术》课程教学资源(PPT课件讲稿).ppt
- 南京航空航天大学:《数据结构》课程教学资源(PPT课件讲稿)第二章 线性表.ppt
- 《计算机文化基础》课程教学课件(PPT课件讲稿)第一章 信息技术与计算机文化.ppt
- 江苏大学:《面向对象建模技术》课程教学资源(PPT课件讲稿)第1章 UML与面向对象(主讲:林琳).ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第五章 树及二叉树.ppt
- 《网站设计与建设》课程PPT教学课件(Website design and developments)第二部分 网站规划 第9章 软件平台规划.ppt
- 《数据库原理与应用》课程教学资源(PPT课件讲稿)第2章 关系数据库数学模型.ppt
- 《计算机网络》课程电子教案(PPT教学课件讲稿,共十章).ppt
- 西华大学:《电子商务概论》课程教学资源(PPT课件讲稿)第3章 电子商务的技术基础.ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程教学资源(PPT课件讲稿)分布式系统的同步(3.3-3.5).ppt
- 西安交通大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第1章 微机系统概论(2013).ppt
- 西安交通大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)复习纲要(主讲:桂小林).ppt
- 北京大学:网络搜索引擎原理(PPT讲稿)Web Graph & Link Analysis.ppt
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第七章 密码协议.pptx
- 上海交通大学:Network Coding for Wireless Networks(PPT讲稿).pptx
- 并行算法 Parallel Algorithms(PPT讲稿)现状与展望 status and prospects.ppt
- 《高级程序语言》课程教学资源(PPT课件讲稿)第09章 平台无关语言.ppt
- Phase Change Memory Aware Data Management and Application.pptx
- 合肥工业大学:《数据库系统概论》课程教学资源(PPT课件)第四章 并发控制.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux的进程(1/3).ppt
- 《计算机网络》课程教学大纲 Computer Networks.pdf
- 南京大学:模型检测(PPT课件讲稿)Model Checking.pptx
- 电子科技大学:《计算机操作系统》课程教学资源(PPT课件讲稿)第四章 设备管理 Device Management and Disk Scheduling.ppt
- 湖南生物机电职业技术学院:《电子商务概论》课程教学资源(PPT课件)第八章 电子商务安全.ppt
- 《操作系统》课程PPT教学课件(英文)内存管理 Memory Management.ppt
- 上海交通大学:IT项目管理(PPT讲稿)讲座6 软件项目工作量估算.ppt
- 四川大学:《数据库技术》课程教学资源(PPT课件讲稿)第9章 数据库系统开发工具VB.ppt
- 合肥学院:《数据库原理与应用》课程教学资源(PPT课件)第4章 数据库的创建与管理.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第3章 流水线技术.ppt
- 系统软件与软件安全(PPT讲稿)构造安全、高效的系统软件.pptx
- 计算机问题求解(PPT讲稿)图的计算机表示以及遍历.pptx
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 03 Standard Template Library & Generic Programming.ppt