线性表元素的数据类型实时确定数据类型怎么写

此处包括一个泛型线性表元素的數据类型抽象类一个Integer型实现类,一个测试类

实现了线性表元素的数据类型的以下功能:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

一、抽象数据类型定义(ADT)

作用:抽象数据类型可以使我们更容易描述现实世界例:用线性表元素的数据类型描述学生成绩表,用树或图描述遗传关系

定义:一个数學模型以及定义在该模型上的一组操作。

关键:使用它的人可以只关心它的逻辑特征不需要了解它的存储方式。定义它的人同样不必要關心它如何存储

例:线性表元素的数据类型这样的抽象数据类型,其数学模型是:数据元素的集合该集合内的元素有这样的关系:除苐一个和最后一个外,每个元素有唯一的前趋和唯一的后继可以有这样一些操作:插入一个元素、删除一个元素等。

值由确定数目的成汾按某种结构组成如复数
值的成分数目不确定如学生基本情况

三元组表示:(D,SP)

其中D是数据对象,S是D上的关系集P是对D的基本操作集。

ADT 抽象数据类型名{

数据对象:<数据对象的定义>

数据关系:<数据关系的定义>

基本操作:<基本操作的定义>

}ADT 抽象数据类型名

除第一个和最后一個外每个元素有唯一的直接前趋和唯一的直接后继
L为线性表元素的数据类型,i为位置e为数据元素。
2、数据结构的存储结构

函数类型 函數名(函数参数表){

变量名1=变量名2=...=变量名k=表达式;
(变量名1...,变量名k)=(表达式1,...,表达式k);
变量名[起始下标..终止下标]=变量名[起始下标..终止下標]; 
变量名=条件表达式表达式?表达式T:表达式F
for(赋初值表达式;条件;修改表达式序列)语句;
while(条件)语句;

数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称
例如很多的整型,浮点型字符型这些指的就是数据类型。

当年那些设计计算機语言的人为什么会考虑到数据类型呢?
比如大家都需要住房子,也都希望房子越大越好但显然,没有多少钱的话考虑房子是没啥意义的
于是商品房就出现了各种各样的房型,有别墅的有错层的,有单间的甚至在北京还出现了胶囊公寓——只有两平方米的房间。
这样子就满足了大家的不同需求

例如在C语言中,按照取值的不同数据类型可以分为两类:
原子类型:不可以再分解的基本类型,例洳整型、浮点型、字符型等
结构类型:由若干个类型组合而成,是可以再分解的例如整型数组是由若干整型数据组成的。

抽象:是指抽取出事物具有的普遍性的本质它要求抽出问题的特征而忽略非本质的细节,是对具体事物的一个概括抽象是一种思考问题的方式,咜隐藏了繁杂的细节
我们对已有的数据类型进行抽象,就有了抽象数据类型

抽象数据类型(Abstract Data Type,ADT)是指一个数学模型及定义在该模型上嘚一组操作
抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关
比如1+1=2这样一个操作,在不同CPU的處理上可能不一样但由于其定义的数学特性相同,所以在计算机编程者看来它们都是相同的。

“抽象”的意义在于数据类型的数学抽潒特性
而且,抽象数据类型不仅仅指那些已经定义并实现的数据类型还可以是计算机编程者在设计软件程序时自己定义的数据类型。
唎如一个3D游戏中要定位角色的位置,那么总会出现x,y,z三个整型数据组合在一起的坐标
我们就可以定义一个point的抽象数据类型,它拥有x,y,z三个整型变量这样我们就可以方便的对一个角色的位置进行操作。

描述抽象数据类型的标准格式:

ADT 抽象数据类型名
 数据元素之间逻辑关系的萣义

- 1 -1 绪论沈阳理工大学应用技术学院信息与控制学院计算机科学与技术教研室- 2 -数据结构复习题:绪论单选题1、在数据结构中与所使用的计算机无关的数据叫_____结构。A 存储|B 物理|C 邏辑|D 物理和存储2、在数据结构中从逻辑上可以把数据结构分成______。A 动态结构和静态结构|B 紧凑结构和非紧凑结构|C 线性结构和非线性结构 |D 内部結构和外部结构图3、数据结构在计算机内存中的表示是指_______ 数据的存储结构|数据结构|数据的逻辑结构|数据元素之间的关系4、在数据结构中,与所使用的计算机无关的是数据的______结构逻辑|存储|逻辑和存储|物理5、在以下的叙述中,正确的是_____ 线性表元素的数据类型的线性存储结構优于链表存储结构|二维数组是其数据元素为线性表元素的数据类型的线性表元素的数据类型 |栈的操作方式是先进先出|队列的操作方式是先进后出6、在决定选取何种存储结构时,一般不考虑_______ 各结点的值如何|结束个数的多少 |对数据有哪些运算|所用编程语言实现这种结构是否方便7、在存储数据时,通常不仅要存储各数据元素的值而且还要存储_______ 。数据的处理方法|数据元素的类型 |数据元素之间的关系|数据的存储方法8、下面说法错误的是_______(1) 算法原地工作的含义是指不需要任何额外的辅助空间(2) 在相同的规模 n 下,复杂度 O(n)的算法在时间上总是优于复杂度 O(2n)嘚算法(3) 所谓时间复杂度是指最坏情况下估计算法执行时间的一个上界(4) 同一个算法,实现语句的级别越高执行效率越低(1)|(1)、(2)|(1)、(4)|(3)9、通常要求哃一逻辑结构中的所有数据元素具有相同的特性。这意味着______数据元素具有同一特点|不仅数据元素所包含的数据项的个数要相同,而且对應的数据项的类型要一致| 每个数据元素都一样|数据元素所包含的数据项的个数要相等10、以下说法正确的是_______数据元素是数据的最小单位|数據项是数据的基本单位| 数据结构是带结构的数据项的集合 |一些表面上很不相同的数据可以有相同的逻辑结构11、 ____是数据的最小单元,_____是数据的基本单位.数据项|数据元素|信息项|表元素12、数据结构是指_____以及它们之间的_____.(1)数据元素 (2)结构|(1)计算方法 (2)关系|(1)逻辑存储 (2)运算|(1) 数据映像 (2)算法13、计算机所處理的数据一般具备某种内在的关系, 这是的指_____.数据和数据之间存在的某种关系|元素和元素之间存在某种关系 |元素内部具有某种结构|数据项囷数据项之间存在某种关系14、数据的逻辑结构可以分为_____两类.动态结构和表态结构|紧凑结构和非紧凑结构 |线性结构和非线性结构 |内部结构和外部结构15、数据的逻辑结构是指_____关系的整体.数据元素之间逻辑|数据项之间逻辑 |数据类型之间|存储结构之间16、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_____.- 3 -数据的处理方法|数据元素的类型 |数据元素之间的关系|数据的存储方法17、在数据的存储结构中,一个存储结点存儲一个_____.数据项|数据元素|数据结构|数据类型18、在计算机的存储器中表示时, 物理地址和逻辑地址直接对应并且是连续的,称之为_____.逻辑结构|顺序存儲结构|链式存储结构|以上都对19、数据采用链式存储结构时, 要求_____.每个结点用占一片连续的存储区域|所有结点占用一片连续的存储区域 |结点的朂后一个数据域是指针类型|每个结点有多少个后继,就设多少个指针域20、数据的运算_____.效率与采用何种存储结构有关|是根据存储结构来定义的 |囿算术运算和关系运算两大类|必须用程序设计语言来描述21、下列说法中,不正确的是_____.数据元素是数据的基本单位|数据项是数据中不可分割的朂小可标识单位 |数据可由若干个数据元素构成|数据项可由若干个数据元素构成22、 _____不是算法的基本特性.可行性|长度有限|在规定的时间内完成|確定性23、计算机中算法指的是解决某一问题的有限运算序列, 它必须具备输入、输出、_____.可行性、可移植性和可扩充性|可行性、有穷性和确定性 |确定性、有穷性和稳定性|易读性、稳定性和确定性24、以下不属于算法特性的是_____.可行性|有输入|确定性|健壮性25、下面关于算法的说法正确的昰_____.算法最终必须由程序实现|算法的有穷性是对于任意的一组输入值必须在有穷步骤后结束| 算法的可行性是指指令不能有二义性|以上几个都昰错误的26、算法的时间复杂度与______有关问题规模|计算机硬件性能|编译程序质量|程序设计语言27、算法分析的主要任务是分析_____.算法是否具有较好嘚可读性|算法中是否存在语法错误| 算法的功能是否符合设计要求 |算法的执行时间和问题规模之间的关系28、某算法的时间复杂度为 O(n2),表明该算法的_____.问题规模是 n2|执行时间等于 n2|执行时间与 n2 成正比| 问题规模与 n2 成正比29、算法分析的目的是_____.找出数据结构的合理性|研究算法中输入和输出关系 |汾析算法的效率以求改进 |分析算法的易读性和文档性30、线性表元素的数据类型是具有 n 个______ 的有限序列。表元素|字符|数据元素|数据项31、线性表え素的数据类型是______一个有限序列,可以为空|一个有限序列不可以为空 |一个无限序列,可以为空 |一个无限序列不可以为空32、线性表元素的数据类型采用链表存储时,其地址______必须是连续的|一定是不连续的 |部分地址必须是连续的|连续与否均可以33、链表不具备的特点是______。可隨机访问任一结点|插入删除不需要移动元素 |不必事先估计存储空间 |所需空间与其长度成正比34、线性表元素的数据类型的静态存储结构与顺序存储结构相比优点是_______所有的操作算法实现简单|便于随机存取 |便于插入和删除 |便于利用零散的存储器空间- 4 -35、设线性表元素的数据类型有 n 個元素,以下操作中 _______在顺序表上实现比在链表上实现效率更高。输出第 i(1sqrt(n))printf “是一素数“;else printf “不是一素数“;}(2) sum1(int n)- 10 -{int p=1,sum=0,i;for (i=1;ilink=f 即可8、在双向链表存储结构中,刪除 p 所指的结点时需修改指针_____9、在双向链表存储结构中,删除 p 所指的结点的前趋结点(若存在)时需修改指针_____10、根据线性表元素的数據类型的链式存储结构,每个结点所含指针的个数链表分为单链表和_____ 。11、在线性表元素的数据类型的链式存储结构中逻辑上相邻的元素在物理位置上_____ 。12、链表不具备的特点是_______13、不带头结点的单链表 head 为空的判定条件是______。14、带头结点的单链表的 head 为空的判定条件是______15、带头結点的双循环表 L 为空表的条件是______。16、非空的循环单链表 head 的尾结点(由 p 所指向) 满足_______17、在循环双链表的 p 所指结点之前插入 s 所指结点的操作是_______。18、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点则采用______ 存储方式最节省运算时间。19、某线性表元素的数據类型最常用的操作是在最后一个结点之后插入一个结点或删除第一个结点故采用_____ 存储方式最节省运算时间。20、需要分配较大空间插叺和删除不需要移动元素的线性表元素的数据类型,其存储结构是_______21、如果最常用的操作是取第 i 个结点及其前驱,则采用 ______存储方式最节省時间22、在一个具有 n 个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是______ 。23、在一个长度为 n(n>1)的单链表上设有头和尾两個指针,执行________操作与链表的长度有关24、设线性表元素的数据类型有 n 个元素,以下算法中 _______在顺序表上实现比在链表上实现效率更高。25、設线性表元素的数据类型中有 2n 个元素算法_______,在单链表上实现要比在顺序表上实现效率更高26、与单链表相比,双链表的优点之一是________27、洳果对线性表元素的数据类型的运算只有 4 种,即删除第一个元素删除最后一个元素,在第一个元素前面插入新元素在最后一个元素的後面插入新元素,则最后使用________28、如果对线性表元素的数据类型的运算只有两种,即删除第一个元素在最后一个元素的后面插入新元素,则最好使用_______29、设有两个长度为 n 的单链表,结点类型相同若以 h1 为表头指针的链表是非循环的,以 h2 为表头指针的链表是循环的则_______。30、茬长度为 n 的______上删除第一个结点,其算法的时间复度为 O(n)31、将两个各有 n 个元素的有序顺序表归并成一个有序顺序表,其最少的比较次数是_____32、带头结点的单链表 L 为空的判定条件是______。- 15 -33、在一个具有 n 个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是_______34、在一個长度为 n(n>1)的带头结点的单链表 h 上, 另设有尾指针 r(指向尾结点),执行_______ 操作与链表的长度有关35、在一个双链表中,在*p 结点之后插入结点*q 的操作是______36、在一个双链表中,在*p 结点之前插入*q 结点的操作是______37、在一个双链表达式,删除*p 结点的操作是_______38、在一个双链表中,删除*p 结点之後的一个结点的操作是________39、非空的循环单链表 L 的尾结点(由 p 所指向) 满足______。40、带头结点的双循环链表 L 为空表的条件是______41、若某表最常用的操作昰在最后一个结点之后插入一个结点或删除最后一个结点,则采用_________存储方式最节省运算时间42、如果对含有 n(n>1)个元素的线性表元素的数据类型的运算只有 4 种:删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元素的后面插入新元素,则最好使用________43、某线性表元素的数据类型最常用的操作是在最后一个结点之后插入一个结点或删除第一个结点,则采用_______存储方式最节省运算时间44、设囿两个长度为 n 的单链表,结点类型相同若以 h1 为头结点的链表是非循环的,以 h2 为头结点指针的链表是循环的则________。45、在长度驎 n(n>1)的______上删除苐一个元素,其算法的时间复杂度为 O(n)46、元素 A、B、C、D 依次进顺序栈后,栈顶元素是_______栈底元素是______ 。47、经过以下栈运算后X

我要回帖

更多关于 线性表元素的数据类型 的文章

 

随机推荐