题目内容

如果对含有n(n>1)个元素的线性表的运算只有4种:删除第一个元素;删除最后一个元素;在第一个元素前面插入新元素;在最后一个元素的后面插入新元素,则最好使用以下哪种存储结构

A. 只有尾结点指针没有头结点指针的循环单链表
B. 只有尾结点指针没有头结点指针的非循环双链表
C. 只有头结点指针没有尾结点指针的循环双链表
D. 既有头结点指针也有尾结点指针的循环单链表

查看答案
更多问题

下面算法用于删除整数顺序表 L 中所有值在[x,y]范围内的元素,请完成程序填空void fun(SqList *&L,ElemType x,ElemType y){ int i,k=0;for (i=0;ilength;i++)if (!(____1____ && L->data[i]<=y)){ L->data[___2___]=L->data[__3__];k++;}L->length=____4___;}

下面算法将元素x插入到一个有序(从小到大排序)顺序表的适当位置上,并保持有序性。请完成程序填空。void Insert(SqList *&L,ElemType x){ int i=0,j;while (i<___1___&& L->data[i]length-1;j__2__i;j--)L->data[__3___]=L->data[j];L->data[__4___]=x;L->length++;}

设A和B是两个结点个数分别为m和n的单链表(带头结点),其中元素递增有序。设计一个尽可能高效的算法求A和B的交集,要求不破坏A、B的结点,将交集存放在单链表C中。void insertion(LinkList *A,LinkList *B,LinkList *&C){ LinkList *p=___1____,*q=B->next,*s,*t;C=(LinkList *)malloc(sizeof(LinkList));t=___2___;while (p!=NULL && ____3____){ if (p->data____4___q->data){ s=(LinkList *)malloc(sizeof(LinkList));____5___=p->data;t->next=s;t=___6___;p=p->next;q=q->next;}else if (p->datadata)____7____;else___8____;}t->next=NULL;}算法的时间复杂度为O(m+n),空间复杂度为O(MIN(m,n))。

顺序表结构体中主要包含两个域,数据data域和顺序表长度length域。

A. 对
B. 错

答案查题题库