从顺序表中删除一个元素时,表中所有在被删元素之后的元素均需()。
A、前移一个位置
B、后移一个位置
C、不动
D、视情况而定
A、前移一个位置
B、后移一个位置
C、不动
D、视情况而定
第4题
顺序表M包含i个元素,当在M中删除一个元素时,在等概率情况下,顺序表中元素的平均移动次数为()。
A)(n-1)/2
B)(n+1)/2
C)n/2
D)n
第6题
A.删除所有值为x的元素
B.在最后一个元素的后面插入一个新元素
C.顺序输出前k个元素
D.交换第i个元素和第n-i-1个元素的值(i=1,1,n)
第7题
请根据下面介绍的跳跃表的思想实现跳跃表。
为了提高链表的检索效率,可以参考顺序表把单链表中元素排序,然后采用类似二分法的思想进行折半检索。不过,因为链表中结点的位置不是连续存放的,所以为了折半检索的需要,把单链表扩充为多链结构,借助于一些支持折半的“跳跃的指针”,把检索的范围快速缩小。
下图(a)是一个简单的链表,其结点按照结点值的顺序排列,检索排序的链表需要沿着链表一个结点一个结点的移动,平均需要访问n/2个结点。考虑添加一个指向其他后继结点的指针,以便交替地跳过结点的直接后继结点,如下图(b)所示。把只有1个指针的结点定义为0级跳跃表结点,把有2个指针的结点定义为1级跳跃表结点。进行检索时,先沿着1级指针走,直到找到一个后继比检索关键码大的值。然后回到0级指针,如果需要的话,再多走一个结点,这样可有效地把工作量减半。类似地,可以继续以这种方式添加指针,直到像下图(c)那样,对于一个有n=8个结点的表,只要有log2n=3个指针。进行检索时,第一步就可以跳过n/2个结点,然后根据需要使得步伐越来越短(类似二分法检索)。通过这种安排,平均情况下的访问数是O(log2n)。
下图(c)是一个理想的跳跃表。其中一半的结点只有1个指针,四分之一的结点有2个指针,八分之一的结点有3个指针,依此类推。而且同一级的指针跳跃的跨度是相同的。这是一个完全“等跨度”的跳跃表。
概率数据结构的思想
跳跃表与有序的顺序表不同,它是一种动态数据结构,它的主要优点是能够动态地保持高效的检索。在频繁执行插入和删除过程维护前面这种“完全”等跨度的代价很大。为了减少维护的代价,仅仅需要维护成随机的等跨度就行。采用的关键技术是按照所谓“概率数据结构”的思想。具体方法如下:
假设元素的插入和删除都是随机的,每当删除一个结点时,在跳跃表中找到该结点后直接删除;关键是在插入一个结点时,要为新结点按概率随机分配一个级别,使得在跳跃表的所有结点中,有一个指针的结点(0级跳跃表结点)概率是50%,有两个指针的结点(1级跳跃表结点)概率是25%……依此类推。这样,根据概率论的观点,进行检索时,平均情况下的访问结点数仍然是O(log2n)。
第8题
下图(c)是一个理想的跳跃表。其中一半的结点只有1个指针,四分之一的结点有2个指针,八分之一的结点有3个指针,依此类推。而且同一级的指针跳跃的跨度是相同的。这是一个完全“等跨度”的跳跃表。 概率数据结构的思想跳跃表与有序的顺序表不同,它是一种动态数据结构,它的主要优点是能够动态地保持高效的检索。在频繁执行插入和删除过程维护前面这种“完全”等跨度的代价很大。为了减少维护的代价,仅仅需要维护成随机的等跨度就行。采用的关键技术是按照所谓“概率数据结构”的思想。具体方法如下: 假设元素的插入和删除都是随机的,每当删除一个结点时,在跳跃表中找到该结点后直接删除;关键是在插入一个结点时,要为新结点按概率随机分配一个级别,使得在跳跃表的所有结点中,有一个指针的结点(0级跳跃表结点)概率是50%,有两个指针的结点(1级跳跃表结点)概率是25%……依此类推。这样,根据概率论的观点,进行检索时,平均情况下的访问结点数仍然是O(log2n)。
第9题
A.从SSS表删除年龄大于60岁的记录
B.在SSS表中创建一条年龄60的记录
C.删除SSS表中所有列
D.删除SSS表的年龄列
第11题
在考生文件夹中完成如下综合应用: 在考生文件夹中,打开student数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置): 设计一个名称为myform的表单,表单的标题为“学生住宿信息浏览”。表单上设计一个包含三个选项卡的“页框”和一个“退出”命令按钮,界面如图所示。
要求如下: (1)为表单建立数据环境,按顺序向数据环境添加“住宿”表和“学生”表。 (2)按从左至右的顺序三个选项卡的标签(标题)的名称分别为“宿舍”、“学生”和“住宿信息”,每个选项卡上均有一个表格控件,分别显示对应表的内容,其中住宿信息选项卡显示如下信息:学生表里所有学生的信息,加上所住宿舍的电话(不包括年龄信息)。 (3)单击“退出”按钮关闭表单。