将两个分别含有m、n个节点的有序单链表归并成一个有序单链表,要求不破坏原有的单链表,对应算法的空间复杂度是()(MIN表示取最小值)。
A.O(n)
B.O(m)
C.O(m+n)
D.O(MIN(m,n))
第1题:
在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
第2题:
第3题:
A、m+n
B、m*n
第4题:
A.插入一个结点使之有序的算法的时间复杂度为O(1)
B.删除最大值结点使之有序的算法的时间复杂度为O(1)
C.找最小值结点的算法的时间复杂度为O(1)
D.以上都不对
第5题:
在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是(53)。
A.O(1)
B.O(n)
C.O(nlogn)
D.O(n2)
第6题:
已知两个链表head1 和head2 各自有序,请把
它们合并成一个链表依然有序,这次要求用递归方
法进行。(Autodesk)
Node * MergeRecursive(Node *head1 , Node *head2)
{
if ( head1 == NULL )
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
if ( head1->data < head2->data )
{
head = head1 ;
head->next = MergeRecursive(head1->next,head2);
}
else
{
head = head2 ;
head->next = MergeRecursive(head1,head2->next);
}
return head ;
}
第7题:
第8题:

第9题:
在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。
第10题:
折半查找法适用于()。
第11题:
O(1)
O(n)
O(n2)
O(log2n)
第12题:
第13题:
●在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是 (53) 。
(53) A.O(1)
B.O(n)
C.O(nlogn)
D.O(n2)
【解析】本题主要考核有序单链表上的插入操作及算法分析。对数据结构的任何操作都不能改变其原有的结构特性。因此,在有序单链表中插入一个新结点后,仍然要保持它的有序性。
插入操作的关键是查找插入位置,主要时间也是花在插入位置的查找上。n个结点的单链表,有,n+1个可能插入的位置,即第一个结点之前和每一个结点之后。在第一个结点之前插入,需比较一次;在第一个结点之后插入需比较两次;…;在第,n个结点之后插入需查找次。如果在每一个位置上作插入的概率相等,即
,则在有序单链表上查找插入位置的平均比较次数为:

第14题:
A.O(1)
B、O(n)
C、O(n2)
D、O(nlog2n)
第15题:
A、O(1)
B、O(n)
C、O(n的平方)
D、O(log2n)
第16题:
A.O(1)
B.O(n)
C.O(m)
D.O(m+n)
第17题:
设A和B是两个单链表,其表中元素有序递增。请分析算法的时间复杂度。其时间复杂度为(40)。
A.O(re+n-1)
B.(m+n+1)
C.O(m+n)
D.不确定
第18题:
在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是()
A.O(1)
B.O(n)
C.O(n2)
D.O(nlogn)
第19题:

第20题:
对于n个元素组成的线性表,建立一个有序单链表的时间复杂度是()。
第21题:
编写算法,将一个头指针为head不带头结点的单链表改造为一个单向循环链表,并分析算法的时间复杂度。
第22题:
O(1)
O(n)
O(m)
O(m+n)
第23题:
O(1)
O(n)
O(n2)
O(nlog2n)
第24题:
有序顺序表
有序单链表
有序顺序表和有序单链表都可以
无限制