具有线性结构的数据结构是( )。
栈
广义表
树
图
若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度( )。
O(1)
O(n2)
O(n)
O(log2n)
若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用( )存储方式最节省时间。
顺序表
双链表
单链表
单循环链表
在一个长度为n的顺序表中,在第i个元素之前插入一个新元素时,需向后移动( )个元素。
n-i-1
n-i
i
n-i+1
非空的循环单链表head的尾结点p满足( )。
p==head
p==NULL
p->next==NULL
p->next==head
链表不具有的特点是( )。
可随机访问任一元素
所需空间与线性表长度成正比
插入删除不需要移动元素
不必事先估计存储空间
在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是( )。
p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;
q->next=p->next;q->prior=p;p->next=q;p->next=q;
p->next=q;q->prior=p;p->next->prior=q;q->next=q;
q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;
线性表采用链式存储时,结点的存储地址( )。
必须是不连续的
和头结点的存储地址相连续
必须是连续的
连续与否均可
线性表是n个( )的有限序列。
表元素
数据元素
数据项
字符
在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个结点s,则执行( )。
p->next=s;s->next=q;
q->next=s;s->next=p;
s->next=p->next; p->next=s;
p->next=s->next;s->next=p;