两个长度为n的双链表,节点类型相同,若以h1为头指针的双链表是非循环的,以h2为头指针指针的双链表是循环的,则()。
A.对于非循环双链表来说,删除首节点的操作,其时间复杂度都是O(n)
B.对于循环双链表来说,删除首节点的操作,其时间复杂度都是O(n)
C.对于非循环双链表来说,删除尾节点的操作,其时间复杂度都是O(1)
D.对于循环双链表来说,删除尾节点的操作,其时间复杂度都是O(1)
第1题:
若某线性表中最常用的操作是在最后一个元素之前插入和删除元素,则采用______最节省运算时间。
A.单链表
B.仅有头指针的单循环链表
C.仅有尾指针的单循环链表
D.双链表
第2题:
第3题:
带有头结点的单循环链表的头指针为head,则该链表为空的判定条件是()。
A、head==NUL
B、head-next==NULL
C、head!=NULL
D、head-next==head
第4题:
在链表结构中,采用(59)可以用最少的空间代价和最高的时间效率实现队列结构。
A.仅设置尾指针的单向循环链表
B.仅设置头指针的单向循环链表
C.仅设置尾指针的双向链表
D.仅设置头指针的双向链表
第5题:
第6题:
若在单向链表上,除访问链表中所有节点外,还需在表尾频繁插入节点,那么采用()最节省时间。
第7题:
设长度为n的链队用单循环链表表示,若设头指针,则入队出队操作的时间为何?若只设尾指针呢?
第8题:
设head1和p1分别是不带头结点的单向链表A的头指针和尾指针,head2和p2分别是不带头结点的单向链表B的头指针和尾指针,若要把B链表接到A链表之后,得到一个以head1为头指针的单向循环链表。写出其中两个关键的赋值语句(不用完整程序,结点的链域为next)。
第9题:
设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句()。
第10题:
在单链表、双链表和单循环表中,若仅知道指针p指向某结点,不知道头指针,能否将结点*p从相应的链表中删去?若可以,其时间复杂度各为多少?
第11题:
双向循环链表中每个结点需要包含两个指针域
已知单向链表中任一结点的指针就能访问到链表中每个结点
顺序存储的线性链表是可以随机访问的
单向循环链表中尾结点的指针域中存放的是头指针
第12题:
第13题:
如果对线性表的运算只有4种,即删除第一个元素,删除最后一个元素,在第一个元素面前插入新元素,在最后一个元素的后面插入新元素,则最好使用( )。
A.只有表尾指针没有表头指针的循环单链表
B.只有表尾指针没有表头指针的非循环双链表
C.只有表头指针没有表尾指针的循环双链表
D.既有表头指针也有表尾指针的循环单链表
第14题:
完善算法:已知单链表结点类型为:
函数create建立以head为头指针的单链表。
第15题:
A.只有表头指针的不带表头结点的循环单链表
B.只有表尾指针的不带表头结点的循环单链表
C.只有表尾指针的带表头结点的循环单链表
D.只有表头指针的带表头结点的循环单链表
第16题:
性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(5)存储方式最节省运算时间。
A.单链表
B.仅有头指针的单循环链表
C.双链表
D.仅有尾指针的单循环链表
第17题:
第18题:
某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
第19题:
用循环链表表示的队列长度为n,若只设头指针,则出队和入队的时间复杂度分别是()和()。
第20题:
设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作()。
第21题:
要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head->next;()。
第22题:
如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用()。
第23题:
第24题: