Chapter2_线性表分解.ppt

第2章 线性表 王建芳 计算机科学与技术学院 河南理工大学 WIN-TC是一个TC2 WINDOWS平台开发工具。该软件使用TC2为内核,提供WINDOWS平台的开发界面,因此也就支持WINDOWS平台下的功能,例如剪切、复制、粘贴和查找替换等。而且在功能上也有它的独特特色例如语法加亮、C内嵌汇编、自定义扩展库的支持等。并提供一组相关辅助工具令你在编程过程中更加方便。 wintc不能编windows应用程序,它只能编控制台应用程序。 2 众所周知TC是DOS下的Text界面,所以WIN-TC 和 TC 属于是同一个编译器不同界面而已。 而VC是微软公司提供的功能强大的Window平台开发工具,支持C,C++等语言,可以开发DOS和Window平台的程序。而TC只能开发DOS平台下的程序,现多用来教学。 3 DEV CPP DEV C++是一个C++编译器,遵循的是GCC标准的编译器。现在的DEV C++支持最新的C++和C语言标准。 而turbo C2.0是DOS时代的遗物了。很老了,一些新标准并不支持, 4 1 问题提出 一条记录有学号和成绩两个数据项,依次输入数据建立一个有序表(按成绩由大到小)。其中输入的数据如下(学号,成绩):(1,70),(2,85),(3,75), (4,90),(5,60),(6,80),(7,76),(8,50)等等。 2 问题分析 可用结构体数组来存储记录。 但数组一般固定长度,分配多大空间才合适? 如何实现每输入一条记录都保持有序? 如果需要增加其它功能,如删除、修改、查询、排序,如何实现? 如果数组长度不固定,如何动态分配数组空间? 如果记录还有姓名、课程等数据项,应如何修改程序? 8 第2章 线性表 2.1 线性表的类型定义 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示与实现 2.4 一元多项式的表示及相加 9 2.1 线性表的类型定义 线性结构:第2章至第4章将讨论“线性表”、“栈”、“队列”、“串” 线性结构特点:有“头”元素有“尾”元素,中间的元素有“前驱”元素和“后继”元素 线性表是一个数据元素的有序(次序)集 (1)集合中必存在唯一的一个“第一元素”; (2)集合中必存在唯一的一个 “最后元素” ; (3)除最后元素在外,均有 唯一的后继; (4)除第一元素之外,均有 唯一的前驱。 10 2.1 线性表的类型定义 抽象数据类型线性表的定义如下: ADT List { 数据对象: D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 } {称 n 为线性表的表长; 称 n=0 时的线性表为空表。} 数据关系: R1={ ai-1 ,ai |ai-1 ,ai∈D, i=2,...,n } {设线性表为 (a1,a2, . . . ,ai,. . . ,an), 称 i 为 ai 在线性表中的位序。} 11 2.1 线性表的类型定义 基本操作: 结构初始化操作(添加) 结构销毁操作(删除) 引用型操作(查询) 加工型操作(修改) }ADT List 12 2.1 线性表的类型定义 结构初始化操作(添加) InitList( L ) 操作结果:构造一个空的线性表L。 结构销毁操作(删除) DestroyList( L ) 初始条件:线性表 L 已存在。 操作结果:销毁线性表 L。 13 2.1 线性表的类型定义 引用型操作(查询) ListEmpty( L ) ListLength( L ) PriorElem( L, cur_e, pre_e ) NextElem( L, cur_e, next_e ) GetElem( L, i, e ) LocateElem( L, e, compare( ) ) ListTraverse(L, visit( )) 14 2.1 线性表的类型定义 引用型操作(查询) ListEmpty( L ) (线性表判空) 初始条件:线性表L已存在。 操作结果:若L为空表,则返回TRUE, 否则返回FALSE。 15 2.1 线性表的类型定义 引用型操作(查询) ListLength( L ) (求线性表的长度) 初始条件:线性表L已存在。 操作结果:返回L中元素个数。 16 2.1 线性表的类型定义 引用型操作(查询) PriorElem( L, cur_e

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档