![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
在线性表的下列运算中,不改变数据元素之间结构关系的运算是【】A.插入B.删除C.排序D.定位
在线性表的下列运算中,不改变数据元素之间结构关系的运算是【】
A.插入
B.删除
C.排序
D.定位
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
在线性表的下列运算中,不改变数据元素之间结构关系的运算是【】
A.插入
B.删除
C.排序
D.定位
设线性表为(a1,a2,⋯,an),可采用顺序存储结构和链式存储结构,下列叙述正确的是()。
A.链式存储需要增加指针,用以表达元素之间的先后关系。
B.同一操作,算法的时间复杂性是确定的,与数据的存储结构无关。
C.对于线性表,采用顺序存储所需要的空间更小,因此,顺序存储比链式存储更好。
D.在顺序存储结构中,元素之间的关系通过元素的位置来表达。
E.同一操作,不同的存储结构,算法的时间复杂性可能不同。
F.链式存储中求元素的个数的时间复杂性为 O(1)。
A.1≤i≤n
B.1≤i≤n+1
C.0≤i≤n-1
D.0≤i≤n
顺序存储的线性表
实验目的:
(1)了解线性表的逻辑结构特征。
(2)熟练掌握线性表的顺序存储结构的描述方法,及在其上实现各种基本运算的方法。
(3)掌握和理解本实验中出现的一些基本的c语言语句。
(4)体会算法在程序设计中的重要性。
实验内容:
(1)将一顺序表a中的元素逆置。要求算法仅用一个辅助结点。
(2)求顺序表中的元素的最大值和次最大值。
(3)试设计一个算法,仅用一个辅助结点,实现将顺序表a中的结点循环右移k位的运算。
(4)设一顺序表中元素值递增有序。试设计一算法,将元素x插入到表中适当的位置上,并保持顺序表的有序性。
算法实现的思路为:在有序单链表中插入一个数据元素x,首先要找到该元素应该插入到什么位置,才能保证插入后的单链表仍为有序表。因此,算法的第一步是寻找x的位置:设置指针p、q,最初p指向头结点,q指向头结点的下一个结点,比较q所指数据域的值与x的大小,如果小于x,则p、q分别向后移动一个位置,使p始终作为q的前驱结点,然后重复上面的比较过程;如果比较结果大于x或是比较到最后单链表结束了,则找到了插入位置,在p与q之间插入结点x即可。算法的具体实现如下:
A.队列的存储采用循环队列结构,目的是提高存储空间的重复利用,减少数据的搬移。
B.在队列和堆栈结构中,不能在中间插入和删除元素,只能在一端进行。
C.队列是一种先进后出的线性表。
D.堆栈是一种先进先出的线性表。
E.队列和堆栈都属于线性结构,是操作受限的线性表。
A.线性表中任意两个元素之间都存在先后关系。
B.线性表中元素的个数不能为空。
C.线性表属于线性数据结构。
D.线性表中的元素如果是数字,必须是大小有序的。
单链表
实验目的:
(1)熟练掌握线性表的单链式存储结构及在其上实现线性表的各种基本运算的方法。
(2)掌握和理解本实验中出现的一些基本的C语言语句。
(3)体会算法在程序设计中的重要性。
实验内容:
(1)设计一算法,逆置带头结点的动态单链表head。要求利用原表的结点空间,并要求用尽可能少的时间完成。
(2)设有两个按元素值递增有序的单链表A和B,编一程序将A表和B表归并成一个新的递增有序的单链表C(值相同的元素均保留在C表中),并要求利用原表的空间存放C。
线性表a中数据元素长度为4,在顺序存储结构下LOC(a1)=1000,则LOC(a3)=______。
A.逻辑上相邻的元素在物理位置上不一定相邻
B.逻辑上相邻的元素在物理位置上也相邻
C.进行数据元素的插入、删除效率较高
D.数据元素是不能随机访问的