1. 数据结构:有序表和顺序表不一样吗
有序表和顺序表不一样。
有序表中的“有序”是逻辑意义上的有序,指表中的元素按某种规则已经排好了位置。顺序表中的“顺序”是物理意义上的,指线形表中的元素一个接一个的存储在一片相邻的存储区域中。
数据结构在计算机中的表示称为数据的物理结构。它包括数据元素的表示和关系的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。顺序存储结构通常借助于程序设计语言中的数组来实现。
链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。链式存储结构通常借助于程序设计语言中的指针类型来实现。
(1)游戏表只能顺序存储吗扩展阅读:
顺序存储结构的优缺点:
顺序存储结构优点是可以节省存储空间,因为分配给数据的存储单元全用存放结点的数据,结点之间的逻辑关系没有占用额外的存储空间。
采用这种方法时,可实现对结点的随机存取,即每一个结点对应一个序号,由该序号可以直接计算出来结点的存储地址。
但顺序存储方法的主要缺点是不便于修改,对结点的插入、删除运算时,可能要移动一系列的结点。
顺序存储结构----网络
2. 线性表顺序存储怎么是随机存取 链式存储反而是顺序存取 想不通啊 求解
如果是顺序存储结构,可以通过下标直接访问,与存储位置无关,所以是随机存取,比如说数组。
如果是链式存储结构,不能通过下标访问,只能按照存储顺序存取,所以是顺序存取,比如说单链表。
要注意“存储”和“存取”的不同。
3. 栈只能顺序存储,这句话对吗,为什么
栈只能顺序存储,这句话不对。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom)。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈也称为后进先出表。线性表可以顺序存储,也可以链式存储,因此栈也可以采用链式存储结构。
(3)游戏表只能顺序存储吗扩展阅读:
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
在计算机系统中,栈则是一个具有以上属性的动态内存区域。程序可以将数据压入栈中,也可以将数据从栈顶弹出。在i386机器中,栈顶由称为esp的寄存器进行定位。压栈的操作使得栈顶的地址减小,弹出的操作使得栈顶的地址增大。
栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。堆栈帧一般包含如下几方面的信息:
1、函数的返回地址和参数。
2、临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。
链式存储结构的特点:
1、比顺序存储结构的存储密度小(链式存储结构中每个结点都由数据域与指针域两部分组成,相比顺序存储结构增加了存储空间)。
2、逻辑上相邻的节点物理上不必相邻。
3、插入、删除灵活 (不必移动节点,只要改变节点中的指针)。
4、查找节点时链式存储要比顺序存储慢。
5、每个节点是由数据域和指针域组成。
6、由于簇是随机分配的,这也使数据删除后覆盖几率降低,恢复可能提高。
顺序存储结构的主要优点是节省存储空间,因为分配给数据的存储单元全用存放结点的数据(不考虑c/c++语言中数组需指定大小的情况),结点之间的逻辑关系没有占用额外的存储空间。
采用这种方法时,可实现对结点的随机存取,即每一个结点对应一个序号,由该序号可以直接计算出来结点的存储地址。但顺序存储方法的主要缺点是不便于修改,对结点的插入、删除运算时,可能要移动一系列的结点。
参考资料:网络-栈
参考资料:网络-链式存储结构
参考资料:网络-顺序存储结构
4. 线性表的存储方式即可是顺序方式
( T )1.线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
( T)2. 栈和队列的存储方式既可是顺序方式,也可是链接方式。
( T )3.二维数组是其数组元素为线性表的线性表。
( T )4. 对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。
( F)5.线性表的顺序存储表示优于链式存储表示。
( F )6. 具有12个结点的完全二叉树有5个度为2的结点。
( F )7.线性表的逻辑顺序与物理顺序总是一致的。
( F )8. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。
( T )9.每种数据结构都应具备三种基本运算:插入、删除和搜索。
三、 单项选择题
( C )1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:
(A)存储结构 (B)逻辑结构 (C)顺序存储结构 (D)链式存储结构
( B )2.一个顺序表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 b
(A)110 (B)108 (C)100 (D)120
( D)3. 下面关于线性表的叙述中,错误的为()
A. 顺序表使用一维数组实现的线性表B. 顺序表必须占用一片连续的存储单元
C. 顺序表的空间利用率高于链表D. 在链表中,每个结点只有一个链域
( C )4.请指出在顺序表{2、5、7、10、14、15、18、23、35、41、52}中,用二分法查找关键码12需做多少次关键码比较。 (C)
A.2 B.3 C.4 D.5
( B )5. 在需要经常查找结点的前驱与后继的场合中,使用 比较合适。
A. 单链表B. 双链表C. 顺序表D. 循环链表( B )
( B )6 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 个元素
(A)8 (B)63.5 (C)63 (D)7
( D )7. 判定一个队列QU(最多元素为m0)为满队列的条件是_______
(A)QU->rear - QU->front = = m0 (B)QU->rear - QU->front -1= = m0
(C)QU->front = = QU->rear (D)QU->front = = QU->rear+1
( C )8. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为
(A)i (B)n=i (C)n-i+1 (D)不确定
( C )9.算法分析的目的是:
A. 找出数据结构的合理性B. 研究算法中的输入/输出关系
C. 分析算法的效率以求改进D. 分析算法的易读性
( C )10按照二叉树的定义,具有3 个结点的二叉树有()种。
A.3 B.4 C.5 D.6
答案是正确的 呵呵 你这些题的答案我都有 还有你以后的答案我也有 要的话以后再问我要啊
5. 有序的线性表是不是顺序存储结构二分法查找的存储结构仅限于线性表且是有序的这句话对不对
有序的线性表是顺序存储结构。二分法查找的存储结构仅限于线性表且是有序的这句话是对的。
线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
顺序存储结构需要三个属性:
存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置。
线性表的最大存储容置:数组长度MaxSize。
线性表的当前长度:length。
二分法查找针对的是一个有序的数据集合,每次通过与区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0
二分查找非常高效,假设数据大小是n,每次查找后数据都会缩小为原来的一半,也就是会除以2,最坏情况下,直到查找区间被缩小为空,才停止。
(5)游戏表只能顺序存储吗扩展阅读
二分法查找和普通查找的区别:
普通查找:对于数组和一个需要查找的元素来说,普通查找的原理很简单,即为从数组的第一个元素到最后一个元素进行遍历,如果第i个元素的值等于我们需要查找的值,那么返回找到的角标i,否则返回-1表示没有查找到。
二分法是从中间元素开始查找,假设整型数组为arr,要查找的元素为value,数组中间元素为arr[mid],若value小于arr[mid],则在左半边继续查找;若value大于arr[mid],则在右半边继续查找,如此循环,知道value等于arr[mid],返回的角标mid即为要找的元素的位置。
二分法查找和普通查找的优缺点分析
普通查找
优点:1)原理简单,代码容易实现。
2)不需要数组有序;
缺点:当元素个数很多时,效率较低。
二分法查找:
优点:效率比普通查找高;
缺点:要求数组必须是有序排列。
6. 顺序和链式存储结构哪个能存储有序表
觉得顺序存储结构和链式存储结构都可以存储有序表。顺序存储结构可以预先预留一定空间(如一维数组),链表存储结构比较灵活,可以动态开辟空间,需要时增加。要用哪种存储结构要看你的有序表要进行什么操作了。