数据结构-线性表-思维导图+小结

数据结构-线性表思维导图+小结

  • 1 数据结构-第二章-线性表-思维导图
  • 2 数据结构-第二章-线性表-习题小结
    • 2.1 概念性习题小结
    • 2.2 操作性习题小结

1 数据结构-第二章-线性表-思维导图

  数据结构-第二章-线性表-思维导图缩略图展示如下图1所示:

数据结构-线性表-思维导图+小结_第1张图片

图1

2 数据结构-第二章-线性表-习题小结

2.1 概念性习题小结

  以下题目均来自王道考研系列-《数据结构考研复习指导》,部分直接写结论。

  1、线性表的顺序存储结构是一种随机存取的存储结构。
  1、【解析】顺序表可以按序号随机存取,时间复杂度是O(1);存取方式是指读写方式。顺序表存储结构是根据起始地址加上元素的序号,可以很方便地访问任意一个元素,这就是随机存取的概念。

  2、采用头插法建立单链表时,读入数据的顺序与生成的链表中的元素的顺序是相反的;采用尾插法建立单链表时,读入数据的顺序与生成的链表中的元素的顺序是一致的。

  3、单链表的长度是不包括头结点的。

  4、头插法建立单链表、尾插法建立单链表、单链表按序号查找结点值、单链表按值查找表结点、单链表插入结点操作、单链表删除结点操作、求单链表表长操作七个操作的时间复杂度均为O(n)。

  5、静态链表需要预先分配一块连续的空间,对应的插入和删除操作不需要移动元素。

  6、删除单链表的最后一个结点的操作与单链表的表长有关。
  6、【解析】删除最后一个结点后,尾结点的前驱节点的指针域需要指向NULL,则需要从头开始依次遍历找到该前驱结点,需要O(n)的时间,因此与单链表的表长有关。

  7、链式存储结构比顺序存储结构能更方便地表示各种逻辑结构。
  7、【解析】链式存储用指针来表示逻辑结构,而指针的设置是任意的,故可以很方便地表示各种逻辑结构,顺序存储只能用物理上的邻接关系来表示逻辑结构。

  8、对于一个头指针为head的带头结点单链表,判定该表为空表的条件是head->next == NULL
   对于不带头结点单链表,判定该表为空表的条件是head == NULL
   对于带头结点的双循环链表L,判定该表为空表的条件是L->prior == L && L->next == L

2.2 操作性习题小结

  以下题目均来自王道考研系列-《数据结构考研复习指导》。

  1、在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入结点s,则执行()
  A、s->next=p->next;p->next=s;
  B、p->next=s->next;s->next=p;
  C、q->next=s;s->next=p;
  D、p->next=s;s->next=q;
  1、【解析】C,s插入后,q成为s的前驱,而p成为s的后继(p、q都是指针)。

  2、在双链表中向p所指的结点之前插入一个结点q的操作为()
  A、p->prior=q;q->next=p;p->prior->next=q;q->prior=p->prior;
  B、q->prior=p->prior;p->prior->next=q;q->next=p;p->prior=q->next;
  C、q->next=p;p->next=q;q->prior->next=q;q->next=p;
  D、p->prior->next=q;q->next=p;q->prior=p->prior;p->prior=q;
  2、【解析】D,为了在p之前插入结点q,可以将p的前一个结点的next域指向q,将q的next域指向p,将q的prior域指向p的前一个结点,将p的prior域指向q(p是指针)。

  3、在双向链表存储结构中,删除p所指的结点时必须修改指针()
  A、p->llink->rlink=p->rlink;p->rlink->llink=p->llink;
  B、p->llink=p->llink->llink;p->llink->rlink=p;
  C、p->rlink->llink=p;p->rlink=p->rlink->rlink;
  D、p->rlink=p->llink->llink;p->llink=p->rlink->rlink;
  3、【解析】A,为了删除p所指结点,可以将p的前一个结点的rlink域指向p的后一个结点,将p的后一个结点的llink域指向p的前一个结点,关键就是要保证结点指针在修改过程中不断链(p是指针)。

你可能感兴趣的:(#,数据结构-思维导图,数据结构)