更多"对于一个单链表,在表头插入结点的时间复杂度为()在表尾插入元素的时间复"的相关试题:
[单项选择]假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为()。
A. p->next=f
B. p->next=f和f=p
C. f=p->next
D. f->next=p和f=p
[单项选择]若在单向链表上,除访问链表中所有结点外,还需在表尾频繁插入结点,那么采用()最节省时间。
A. 仅设尾指针的单向链表
B. 仅设头指针的单向链表
C. 仅设尾指针的单向循环链表
D. 仅设头指针的单向循环链表
[单项选择]对于n个结点的单向链表(无表头结点)需要指针单元的个数至少为
A. n-1
B. n
C. n+1
D. 2n
[简答题]单向链表的链域为next,设指针p指向单向链表中的某个结点,指针S指向一个要插入链表的新结点,现要把s所指结点插入p所指结点之后,某学生采用以下语句:p->next==s;s->next==p->next;这样做正确吗?若正确则回答正确,若不正确则说明应如何改写。
[单项选择]单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和q,要将结点q插入结点p的后面,正确的操作应该是________。
A. q^.link:=p^.link; p^.link:=q;
B. q:=p^.link; p^.link:=q^.link;
C. q^.link:=p; p^.link:=q;
D. q:=p^.link; p:=q^.link
[单项选择]若对一个链表最常用的操作是在末尾插入结点和删除尾结点,则采用仅设尾指针的单向循环链表(不含头结点)时,()。
A. 插入和删除操作的时间复杂度都为O(1)
B. 插入和删除操作的时间复杂度都为O(n)
C. 插入操作的时间复杂度为O(1),删除操作的时间复杂度为O(n)
D. 插入操作的时间复杂度为O(n),删除操作的时间复杂度为O(1)
[填空题]要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head->next;()。
[单项选择]单向链表的每一个结点都有一个指向它的后续结点的指针link,现有结点p和q,要将q插入结点p的后面,正确的操作应该是( )。
A. q↑.link:=p↑.link;p↑.link:=q;
B. q:=p↑.link;p↑.link:=q↑.link;
C. q↑.link:=p;p↑.link:=q;
D. q:=P↑.link;p:=q↑link;
[填空题]对于一个具有n个结点的单链表中,在已知的结点后插入一个新结点的时间复杂度为()在给定值为X的结点后插入一个新结点的时间复杂度为()。
[单项选择]在一个具有n个结点的有序单链表中插入一个新结点,并使其仍然有序的时间复杂性为______。
A. O(1)
B. O(
C. O(n2)
D. O(10g2