数据结构基础 链表

1-1
将N个数据按照从小到大顺序组织存放在一个单向链表中。如果采用二分查找,那么查找的平均时间复杂度是O(logN)。 F
链表不能二分查找
1-2
In a singly linked list of N nodes, the time complexities for query(查询) and insertion(插入) are O(1) and O(N), respectively. F
链表查询为O(n);
1-8
下列函数试图求链式存储的线性表的表长,是否正确? F
int Length ( List PtrL )
{ List p = PtrL;
int j = 0;
while ( p ) {
p++;
j++;
}
return j;
}
p++改为p=p->next;
1-16
可以通过少用一个存储空间的方法解决循环队列假溢出现象。 F
2-3
给定有n个元素的一维数组,建立一个有序单链表的时间复杂度是( )。 C
A.O(1)
B.O(n)
C.O(n ^2)
D.O(nlog 2n)
本题可以有两个方向进行:
①直接插入排序,时间复杂度是O(n2)
②先排序数组,在插入单链表,排序数组的时间复杂度最好是O(nlog2n)
2-5
从一个具有n个结点的有序单链表中查找其值等于x的结点时,在查找成功的情况下,需要平均比较( )个结点。 D
A.n
B.n/2
C.(n-1)/2
D.(n+1)/2
(1+2+……+n)/n;
2-8
单链表中,增加一个头结点的目的是____。C
A.使单链表至少有一个结点
B.标识表结点中首结点的位置
C.方便运算的实现
D.说明单链表是线性表的链式存储
2-8
设循环队列中数组的下标范围是0—n,其头尾指针分别为front和rear,头指针front总是指向队头元素,尾指针rear总是指向队尾元素的下一个位置,则其元素的个数为( )。 C
A.rear-front
B.rear-front+1
C.(rear-front+n+1)%(n+1)
D.(rear-front+n) %n
2-11
循环队列的引入,目的是为了克服( )。 A
A.假溢出问题
B.真溢出问题
C.空间不够用
D.操作不方便
2-13
链表 - 存储密度
链表的存储密度 ▁▁▁▁▁ 。 C
A.大于 1
B.等于 1
C.小于 1
D.不能确定
2-18
循环队列的队满条件为 ( )。 C
A.(sq.rear+1) % maxsize ==(sq.front+1) % maxsize
B.(sq.front+1) % maxsize sq.rear
C.(sq.rear+1) % maxsize sq.front
D.sq.rear sq.front
2-21
对于一个头指针为L的带头结点的单循环链表,判定该表为空表的条件是( )。 C
A.L->next
NULL
B.L
NULL
C.L->next
L
D.L!=NULL
2-28
在长度为n的 ( )上,删除第一个元素,其算法的时间复杂度为O(n) A
A.只有表头指针的不带表头节点的循环单链表
B.只有表尾指针的不带表头节点的循环单链表
C.只有表尾指针的带表头节点的循环单链表
D.只有表头指针的带表头节点的循环单链表
2-37
时间复杂度分析

以下算法的时间复杂度为 ▁▁▁▁▁。

int foo(int n)
{
int s;
if (n <= 1)
{
s = 1;
}
else
{
s = foo(n - 1) + foo(n - 1);
}
return s;
} C
A.O(n)
B.O(n ^2)
C.O(2 ^n )
2-38
时间复杂度分析**

以下算法的时间复杂度为 ▁▁▁▁▁。

int foo(int n)
{
int s;
if (n <= 1)
{
s = 1;
}
else
{
s = foo(n - 1) * 2;
}
return s;
} D
A.O(n ^2)
B.O(2 ^n )
D.O(n)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值