线性表有两种存储结构:一是顺序表,二是链表。试问: (1)如果有n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么? (2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?
第2题
设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
A.带头结点的双循环链表
B.单循环链表
C.带尾指针的单循环链表
D.单链表
第3题
下面哪一条是顺序存储结构的优点?( )
A.插入运算方便
B.可方便地利用各种逻辑结构的存储表示
C.存储密度大
D.删除运算方便
第4题
下面关于线性表的叙述中,错误的是( )。
A.线性表若采用顺序存储,则必须占用一片连续的存储单元
B.线性表若采用顺序存储,则便于进行插入和删除操作
C.线性表若采用链表存储,则不必占用一片连续的存储单元
D.线性表若采用链表存储,则便于进行插入和删除操作
第6题
于在双链表中删除指针变量p所指的结点: p->next=p->prior->next; p->prior=p->next->prior; free(p); (2)下面的算法描述片段用于在双链表中指针变量p所指结点后插入一个新结点: new(q); q->prior=p; p->next=q; q->next=p->next; q=p->next->prior;
第7题
处填写相应的语句。 void Lmknown(LinkList L){ //… p=L->next; q=p->next; r=q->next; while(q!=L){ while((p!=L)&&(p->data>q->data)) p=p->prior q->prior->next=r; A q->next=p0>next; q0>prior=p; B C q=r; p=q->prior; D } }
第8题
ointer h){ //为附加头结点指针 pointer p,q; p=h->next; h->next=NULL; while( (1) ){ q=P; p=p->next; q->next=h->next; h->next= (2) ; } }
第9题
在行个结点的线性表的数组实现中,算法的时间复杂度为O(1)的操作是( )。
A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B.在第i个结点后插入一个新结点(1≤i≤n)
C.删除第i个结点(1≤i≤n)
D.以上都不对
第10题
线性表以链接方式存储时,访问第i个元素的时间复杂度为( )。
A.O(i)
B.O(1)
C.O(n)
D.O(i-1)
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!