2020考研计算机《数据结构(C语言版)》复习笔记(2)
2019.05.23 12:17

  2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机《数据结构(C语言版)》复习笔记(2),希望能帮助大家!

  第二章 线性表知识点整理

  线性表是由n≥0个数据元素组成的有限序列。

  n=0是空表;非空表,只能有一个开始结点,有且只能有一个终端结点。

  线性表上定义的基本运算:

  ·构造空表:Initlist(L)

  ·求表长:Listlength(L)

  ·取结点:GetNode(L,i)

  ·查找:LocateNode(L,x)

  ·插入:InsertList(L,x,i)

  ·删除:Delete(L,i)

  顺序表是按线性表的逻辑结构次序依次存放在一组地址连续的存储单元中。在存储单元中的各元素的物理位置和

  逻辑结构中各结点相邻关系是一致的。地址计算:LOCa(i)=LOCa(1)+(i-1)*d;(首地址为1)

  在顺序表中实现的基本运算:

  ·插入:平均移动结点次数为n/2;平均时间复杂度均为O(n)。

  ·删除:平均移动结点次数为(n-1)/2;平均时间复杂度均为O(n)。

  线性表的链式存储结构中结点的逻辑次序和物理次序不一定相同,为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还存储了其后继结点的地址信息(即指针或链)。这两部分信息组成链表中的结点结构。

  一个单链表由头指针的名字来命名。

  单链表运算:

  ·建立单链表·头插法:s->next=head;head=s;生成的顺序与输入顺序相反。平均时间复杂度均为O(n)。

  ·尾插法:head=rear=null;if(head=null) head=s;else r->next=s;r=s; 平均时间复杂度均为O(n)

  ·加头结点的算法:对开始结点的操作无需特殊处理,统一了空表和非空表。

  ·查找·按序号:与查找位置有关,平均时间复杂度均为O(n)。

  ·按值:与输入实例有关,平均时间复杂度均为O(n)。

  ·插入运算:p=GetNode(L,i-1);s->next=p->next;p->next=s;平均时间复杂度均为O(n)

  ·删除运算:p=GetNode(L,i-1);r=p->next;p->next=r->next;free(r);平均时间复杂度均为O(n)

  单循环链表是一种首尾相接的单链表,终端结点的指针域指向开始结点或头结点。链表终止条件是以指针等于头指针或尾指针。

  采用单循环链表在实用中多采用尾指针表示单循环链表。优点是查找头指针和尾指针的时间都是O(1),不用

  遍历整个链表。

  双链表就是双向链表,就是在单链表的每个结点里再增加一个指向其直接前趋的指针域prior,形成两条不同方

  向的链。由头指针head惟一确定。

  双链表也可以头尾相链接构成双(向)循环链表。

  双链表上的插入和删除时间复杂度均为O (1)。

  顺序表和链表的比较:  ·基于空间:

  ·顺序表的存储空间是静态分配,存储密度为1;适于线性表事先确定其大小时采用。

  ·链表的存储空间是动态分配,存储密度<1;适于线性表长度变化大时采用。

  ·基于时间:

  ·顺序表是随机存储结构,当线性表的操作主要是查找时,宜采用。

  ·以插入和删除操作为主的线性表宜采用链表做存储结构。

  ·若插入和删除主要发生在表的首尾两端,则宜采用尾指针表示的单循环链表。


MORE+

    相关阅读 MORE+

    版权及免责声明
    1.凡本网注明"稿件来源:新东方在线"的所有文字、图片和音视频稿件,版权均属北京新东方迅程网络科技有限公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明"稿件来源:新东方在线",违者本网将依法追究责任。
    2.本网末注明"稿件来源:新东方在线"的文/图等稿件均为转载稿,本网转载出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。如擅自篡改为"稿件来源:新东方在线”,本网将依法追究责任。
    3.如本网转载稿涉及版权等问题,请作者致信weisen@xdfzx.com,我们将及时外理

    Copyright © 2011-202

    All Rights Reserved