当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北京大学:《数据结构与算法》课程教学资源(实验班PPT课件)第二章 线性表、栈和队列

资源类别:文库,文档格式:PDF,文档页数:124,文件大小:702.73KB,团购合买
2.1 线性表(linear list) 2.2 顺序表—向量(Sequential list— vector ) 2.3 链表(Linked list) 2.4 线性表实现方法的比较 2.5 栈(Stack) 2.6 队列(Queue)
点击下载完整版文档(PDF)

第二章线性表、栈和队列 张铭 http://db.pku.edu.cn/mzhang/ds 北京大学信息科学与技术学院 数据结构与算法”教学小组 版权所有,转载或翻印必究

第二章 线性表、栈和队列 张铭 http://db.pku.edu.cn/mzhang/DS/ 北京大学信息科学与技术学院 “数据结构与算法 ”教学小组 ©版权所有,转载或翻印必究

资源提示 作业提交ftp更改 实验班作业提交 ftp:/dshonoradsoZhonor@fusiongrids.cn 实习课作业提交 tp:/dsproi:dso7proi@fusion,grids.cn 讲义和作业发布不变 实验班讲义和作业发布(包括实习作业) http://db.pku.edu.cn/mzhang/ds/honor/ 实习课讲义和作业发布 http:/db.pkuedu.cn/mzhang/ds/shixil back 北京大学信息学院张铭编写 版权所有,转载或翻印必究 Page 2

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 2 back next 资源提示 作业提交ftp更改 „ 实验班作业提交 ftp://ds_honor:ds07honor@fusion.grids.cn „ 实习课作业提交 ftp://ds_proj:ds07proj@fusion.grids.cn 讲义和作业发布不变 „ 实验班讲义和作业发布(包括实习作业) http://db.pku.edu.cn/mzhang/ds/honor/ „ 实习课讲义和作业发布 http://db.pku.edu.cn/mzhang/DS/shixi/

大纲 21线性表( linear list 令22顺序表一向量( Sequential list vector) 令23链表( Linked list) 令24线性表实现方法的比较 令25栈( Stack) 令26队列( Queue) back 北京大学信息学院张铭编写 版权所有,转载或翻印必究 Page 3

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 3 back next 大纲 „ 2.1 线性表(linear list) „ 2.2 顺序表—向量(Sequential list— vector ) „ 2.3 链表(Linked list) „ 2.4 线性表实现方法的比较 „ 2.5 栈(Stack) „ 2.6 队列(Queue)

线性结构分类 线性结构 直接访问型 顺序访问型 目录索引型 向量 记录 字典 散列表 顺序文件 广义表 栈 队列

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 4 back next 线性结构分类 线性结构 直接访问型 顺序访问型 目录索引型 向 量 记 录 字 典 散列表 栈 队 列 顺序文件 广义表

21线性表( linear list 逻辑定义:由结点集N,以及定义在结点集N 上的线性关系r所组成的线性结构 n结点:线性表的元素 唯一的起点:没有前驱,有一个唯一的后继 n唯一的终点:有一个唯一的前驱而没有后继 n内部结点:有唯一的前驱,唯一的后继 结点个数:线性表的长度 线性表的关系r,简称前驱关系 back 反对称性、传递性 北京大学信息学院张铭编写 版权所有,转载或翻印必究 Page 5

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 5 back next 2.1 线性表(linear list) „ 逻辑定义:由结点集N,以及定义在结点集 ,以及定义在结点集N 上的线性关系r所组成的线性结构 所组成的线性结构 „ 结点:线性表的元素 结点:线性表的元素 „ 唯一的起点:没有前驱,有一个唯一的后继 唯一的起点:没有前驱,有一个唯一的后继 „ 唯一的终点:有一个唯一的前驱而没有后继 唯一的终点:有一个唯一的前驱而没有后继 „ 内部结点:有唯一的前驱,唯一的后继 内部结点:有唯一的前驱,唯一的后继 „ 结点个数:线性表的长度 结点个数:线性表的长度 „ 线性表的关系r,简称前驱关系 ,简称前驱关系 „ 反对称性、传递性 反对称性、传递性

implate class list/线性表类模板list,模板参数ELEM listo;∥刨建一个空的新线性表 clist(; ∥/从计算机存储空间删去整个线性表 void clear0;∥将该线性表的全部元素清除,成为空表 void append( ELEM value);∥尾附函数,在表尾加新元素 void insert(int i, ELEM value);∥/插入函数,在第i号位插入 void remove(int 1) ∥删除函数,删去第号元素 baCELEM fetch(int;/读取,返回第i个元素的值 }北京大学信息学院张铭编写 版权所有,转载或翻印必究 Page 6

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 6 back next template class list //线性表类模板list,模板参数ELEM { list(); // 创建一个空的新线性表 ~list(); // 从计算机存储空间删去整个线性表 void clear() ; // 将该线性表的全部元素清除,成为空表 void append(ELEM value) ; // 尾附函数,在表尾加新元素 void insert(int i, ELEM value) ; // 插入函数,在第i号位插入 void remove(int i); // 删除函数,删去第i号元素 ELEM fetch(int i); //读取,返回第i个元素的值 }

22顺序表一向量 采用定长的一维数组存储结构 ■主要特性: 元素的类型相同 元素顺序地存储在连续存储空间 中 通过下标读写即可指定位置元素 back 北京大学信息学院张铭编写 版权所有,转载或翻印必究 Page 7

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 7 back next 2.2 顺序表—向量 „ 采用定长的一维数组存储结构 „ 主要特性: „ 元素的类型相同 „ 元素顺序地存储在连续存储空间 中 „ 通过下标读写即可指定位置元素

顺序表类定义 const int max length=100;/假定最大长度为100 class list i ∥顺序表,向量 private Int maize ∥顺序表最大长度 int curr len;∥顺序表当前长度 ELEM* nodelist;∥私有变量,存储顺序表实例的向量 publIc: ∥以下列出成员函数(顺序表的函数集) int curre;∥当前下标,顺序表的公共变量 ist( const int size);∥ constructor函数,创建新表 cristo ∥ destructor函数,将该表实例删去 void clear(;/清除内容,成为空表 back 北京大学信息学院张铭编写 版权所有,转载或翻印必究 Page 8

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 8 back next 顺序表类定义 const int Max_length = 100; // 假定最大长度为100 class list { // 顺序表,向量 private : int msize; // 顺序表最大长度 int curr_len; // 顺序表当前长度 ELEM* nodelist; //私有变量,存储顺序表实例的向量 public: //以下列出成员函数(顺序表的函数集) int curr; //当前下标,顺序表的公共变量 list(const int size) ; // constructor函数,创建新表 ~list(); //destructor函数,将该表实例删去 void clear(); //清除内容,成为空表

void set First(;∥第一个元素位置赋予当前下标curr void nexto; ∥/curr下移一格,即curr+1 void prevo; 将curr上移一格,即curr-1 bool isIn list(O;∥若curr位置有值时,返回true void append( const ELEM&);∥在表尾增添新元素 void insert( const ELEM&);∥在当前下标cur插入 ELEM remove;/返回cur的位置元素值,并删除 bool isEmpty 0; ∥线性表为空时,返回true ELEM currValueo 返回curr位置的元素值 It length ∥返回此表的当前实际长度 北京大学信息学院张铭编写 版权所有,转载或翻印必究 Page 9

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 9 back next void setFirst(); // 第一个元素位置赋予当前下标curr void next(); // curr下移一格,即curr+1 void prev(); //将curr上移一格,即curr-1 bool isInList(); // 若curr位置有值时,返回true void append(const ELEM&); //在表尾增添新元素 void insert(const ELEM&); // 在当前下标curr插入 ELEM remove(); //返回curr的位置元素值,并删除 bool isEmpty(); //当线性表为空时,返回true ELEM currValue(); //返回curr位置的元素值。 int length(); // 返回此表的当前实际长度 }

nodelist k-1 maize nodelist仁 Item 01 k maize (a)在t位置插入元素item nodelist k-1 mize nodelist mize (b)删除t位置的元素

北京大学信息学院 张铭编写 ©版权所有,转载或翻印必究 Page 10 back next nodelist nodelist i 0 1 t k-1 msize i 0 1 t k msize nodelist nodelist i 0 1 t k-2 msize i 0 1 t k-1 msize (a) 在 t 位置插入元素item (b) 删除 t 位置的元素

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共124页,可试读30页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有