Day15刷题总结

选择题

  • 循环链表不是线性表(A)
    A.正确
    B.错误
    解析:
    线性结构:线性表(顺序表,链表),数组,栈,队列,循环队列
    非线性结构:树,图,对维数组
    逻辑结构:线性结构,非线性结构,集合
    存储结构:顺序存储,链表存储,索引存储和散列存储

  • 下面的描述错误的是(C)
    A.栈只能在一端进行入栈和出栈操作
    B.队列在一端进行入队操作,另一端进行出队操作
    C.栈和队列都是“先进后出”
    D.链表的各个元素在内存中的保持位置可以是不连续的

  • 在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行(B)
    A.s->next=p->next; p->next=s
    B.s->next=p;q->next=s;
    C.p->next=s->next; s->next=p
    D.p->next=s; s->next=q

  • 下面关于线性表的叙述中,错误的是哪一个?(B)
    A.线性表采用顺序存储,必须占用一片连续的存储单元。
    B.线性表采用顺序存储,便于进行插入和删除操作
    C.线性表采用链接存储,不必占用一片连续的存储单元。
    D.线性表采用链接存储,便于插入和删除操作。

  • 在有n个节点的二叉链表中,值为空的链域的个数为(B)
    A.n-1
    B.n+1
    C.2n-1
    D.2n+1

  • 如果最常用的操作是取第i个结点及其前驱,则采用(D)存储方式最节省时间。
    A.单链表
    B.双链表
    C.单循环链表
    D.顺序表
    解析:容易错误选择双链表,是因为直观的看到“前驱”。实际题目说的是“取”前驱,应该理解为读前驱,这是顺序表的优势所在,时间复杂度为O(1);当进行插入或删除操作时由于顺序表可能需要移动的元素较多,不如双链表方便。

  • 适用于压缩存储稀疏矩阵的两种存储结构是 。(A)
    A.三元组表和十字链表
    B.三元组表和邻接矩阵
    C.十字链表和二叉链表
    D.邻接矩阵和十字链表

  • 在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是__D__。
    A.p->next=s; s->prior=p;
    p->next->prior=s; s->next=p->next;
    B.s->prior=p; s->next=p->next;
    p->next=s; p->next->prior=s;
    C.p->next=s; p->next->prior=s;
    s->prior=p; s->next=p->next;
    D.s->prior=p; s->next=p->next;
    p->next->prior=s; p->next=s;

  • 一个长度为99的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点__A__。
    A.99
    B.100
    C.101
    D.49
    E.50
    F.51
    解析:设A走x步 那么B久走3x步 两个要碰到 所以有(3x-x)%99=0 x取99才可以。

  • 设单循环链表中节点的结构为(data,next),且rear是指向非空的带头节点的单循环链表的尾节点的指针。若想删除链表第一个数据元素(首元节点),则应执行下列哪一个操作?(A)
    A.s=rear;rear=rear->next;free(s)
    B.rear=rear->next;free(rear)
    C.rear=rear->next->next;free(rear)
    D.s=rear->next->next;rear->next->next=s->next;free(s);

猜你喜欢

转载自blog.csdn.net/sl1130398099/article/details/83415051