算法与数据结构专项练习5

1.在一个单链表中,若p结点不是最后一结点。在p结点之后插入s结点的正确是 ()。
正确答案: C
s->next=p; p->next=s;
s->next=p; p=p
s->next=p->next ; p->next=s;
p->next=s; s->next=p;
解析:

链表的插入或删除元素,可以理解为是将链表指针链接打断再重新衔接上的过程。
p元素之后插入s,p–>next=s 这一步肯定是需要的,但什么时候执行这一步呢?考虑到 s 的后面应该为 未插入s时 p 后面的元素,即
s–>next=p–>next ,这一步需将 p–>next 赋值给 s–>next,且 p–>next 是未插入s时的 p–>next ,所以执行顺序就是:
s->next=p->next ; p->next=s;
2.在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是_______。
正确答案: B
O(1)
O(n)
O(n2)
O(log2n)
解析:

需要遍历O(n)。确定位置再插入,插入的时间复杂度是O(1)
3.下面哪个不是线性表?
正确答案: D
循环链表
队列

关联数组
空字符串数组
双向链表
解析:

1.循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的 指针 域指向 头结点 ,整个链表形成一个环。
(1)单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。
(2)多重链的循环链表——将表中结点链在多个环上。
2 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表;
3. 栈(stack)在计算机科学中是限定仅在栈顶进行插入或删除操作的线性表。
4. “关联数组”是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引它。 详情查看: http://baike.baidu.com/link?url=yYrNB5t4PrCvs-XfxfEM0ZZfALpsEi3FYopk1v0BuopUSWOr7mS0Lou8C-SzhDnSuv7BH5vKIoIblvi8GgUmGq
关联数组和数组类似,由以名称作为键的字段和方法组成。 它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是, 关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以在以后用于检索数组中的数值。
关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。
5.链表(Linked list)是一种常见的基础数据结构,是一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。双向链表也叫 双链表 ,是链表的一种,它的每个数据结点中都有两个 指针 ,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向 循环链表 。
4.带头结点head的单向循环链表L为空的判断条件是( )
正确答案: C
headNULL
head->next
NULL
head->next==head
head!=NULL
解析:

不带头结点的单链表选A,带头结点的单链表选B,带头结点的单循环链表选C
5.对于一个线性表既要求能够进行较快速地的插入和删除,又要求存储结构能反映数据之间的逻辑关系,则应该用()
正确答案: B 你的答案: B (正确)
顺序存储方式
链式存储方式
散列存储方式
以上均可以

解析:
要求能够进行较快速地的插入和删除,则可选范围为链式存储和散列存储,而再加上 要求存储结构能反映数据之间的逻辑关系,则只能选择链式存储了,因为散列技术的记录数据之间不存在什么逻辑关系,它只和关键字有关联。
6.静态链表中指针表示的是()
正确答案: B
内存地址
数组下标
下一元素地址
左、右孩子地址
解释:

静态链表:数组的每一个下标都对应一个data和一个cur。数据域data用来存放数据元素,;而游标cur相当于单链表中的next指针,
存放该元素的后继在数组中的下标。
7.设指针变量 p 指向单链表中结点 A ,若删除单链表中结点 A ,则需要修改指针的操作序列为( )。
正确答案: A
q=p->next;p->data=q->data;p->next=q->next;free(q);
q=p->next;q->data=p->data;p->next=q->next;free(q);
q=p->next;p->next=q->next;free(q);
q=p->next;p->data=q->data;free(q);

解析
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值