Preface:

这部分主要是我考研之前的总结,留作以后用到时再翻出来看看。都是基础的知识点,望各(Da)位(Lao)不喜勿喷,欢迎指正。

适用人群:考研复习过一遍数据结构的,可以看看,查漏补缺(顺便帮我指出问题,肯定会有不少问题)或者对数据结构的基本知识想有一个系统性的梳理。

多说一句,这些,远远不够...

Chapter 1 线性表

1-   两种存储结构的比较

答:

顺序表:随机访问特性,占用连续存储空间,静态分配,存储密度大。(查找)

链表:不支持随机访问,结点的存储空间利用率较顺序表低,动态分配。(插入,删除)

//在删除链表中某结点时,需要找到它的前驱结点。

//先将要插入结点两端的两边链接好,这样就可以保证不会发生断链后找不到结点的情况。

2-   线性表的链式存储结构

注:

1-   顺序表:定义、插入O(n)、删除O(n)、按值查找(顺序查找)O(n)。

2-   单链表:定义、建立单链表(头、尾)O(n)、按序号查找结点值O(n)、按值查找表结点O(n)、插入O(n)、删除O(n)、求表长O(n)。

3-   单链表中引入头结点的目的是为了操作简单。

4-   双链表:定义、插入、删除。

5-   循环单链表(不设头指针而只设尾指针效率更高)

带有表尾指针的对表尾插入、表头插入删除为O(1)。

对表尾删除O(n),需要找到前驱结点。

6-   循环双链表:对带头节点的循环双链表四种操作均为O(1)。

7-   静态链表(数组)。

8-   查找:无序,顺序和链表均为O(n),有序:顺序表可用折半查找O(log2n)。

Chapter 1 线性表的更多相关文章

  1. Chapter 3(线性表)

    1.单链表 //单链表代码,手打纯手工 //***********************************link.h*********************************** # ...

  2. 线性表Linearlist

    顺序存储,链式存储,索引存储,散列存储 基本运算 SLIST         1.置空表 void SetNull(&L)     2.求长度 int Length(L)     3.取元素 ...

  3. 数据结构(Java描述)之线性表

    基础概念 数据结构:是相互之间存在一种或多种关系的数据元素的集合. 逻辑结构和物理结构 关于数据结构,我们可以从逻辑结构和物理结构这两个维度去描述 逻辑结构是数据对象中数据元素之间的关系,是从逻辑意义 ...

  4. JAVASE02-Unit04: 集合框架 、 集合操作 —— 线性表

    Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Co ...

  5. 数据结构代码整理(线性表,栈,队列,串,二叉树,图的建立和遍历stl,最小生成树prim算法)。。持续更新中。。。

    //归并排序递归方法实现 #include <iostream> #include <cstdio> using namespace std; #define maxn 100 ...

  6. Java集合类学习笔记(各种线性表性能分析)

    ArrayList.LinkedList是线性表的两种典型实现:基于数组的线性表和基于链的线性表. Queue代表了队列,Deque代表了双端队列. 一般来说,由于数组以一块连续内存区来保存所有的数组 ...

  7. 动态分配的顺序线性表的十五种操作—C语言实现

    线性表 定义:是最常用的,也是最简单的数据结构,是长度为n个数据元素的有序的序列. 含有大量记录的线性表叫文件 记录:稍微复杂的线性表里,数据元素为若干个数据项组成,这时把一个数据元素叫记录 结构特点 ...

  8. Java Se :线性表

    Java的集合框架分为两个系列,Collection和Map系列.在大学期间,学习数据结构时,好像学习了线性表.非线性表.树,哎,都给忘了.其实,在Collection系列内部又可以分为线性表.集合两 ...

  9. 数据结构算法C语言实现(二)---2.3线性表的链式表示和实现之单链表

    一.简述 [暂无] 二.头文件 #ifndef _2_3_part1_H_ #define _2_3_part1_H_ //2_3_part1.h /** author:zhaoyu email:zh ...

随机推荐

  1. URL类发送请求

    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...

  2. JVM系列(三)— Java内存模型

    我们已经了解了Java虚拟机的运行时数据区,垃圾收集相关知识,接下来学习虚拟机非常重要的部分 这就是Java内存模型与线程(第12章),这一篇,将主要讲讲内存模型 了解Java内存模型之前,先了解下计 ...

  3. npm安装vuex及防止页面刷新数据丢失

    npm install vuex 在项目scr目录下新建store文件夹,在store文件夹下新建index.js文件. import Vue from 'vue'; import Vuex from ...

  4. 最近开始学习python,学习到了关于web的内容。

    然而在win10中IIS发布CGI脚本的时候遇到了各种各样的问题. 如ISAPI和CGI限制,权限限制等等,一一的百度解决了,最后又出现了 HTTP 错误 502.2 - Bad Gateway Th ...

  5. 牛客集训第七场J /// DP

    题目大意: 在矩阵(只有52种字符)中找出所有不包含重复字符的子矩阵个数 #include <bits/stdc++.h> #define ll long long using names ...

  6. Linux操作系统系列-Linux基础

    概述 先了解下unix,unix是一个多任务.多用户的操作系统,并且是收费的操作系统. 1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的 ...

  7. 对倾斜的图像进行修正——基于opencv 透视变换

    这篇文章主要解决这样一个问题: 有一张倾斜了的图片(当然是在Z轴上也有倾斜,不然直接旋转得了o(╯□╰)o),如何尽量将它纠正到端正的状态. 而要解决这样一个问题,可以用到透视变换. 关于透视变换的原 ...

  8. python中的多线程编程与暂停、播放音频的结合

    先给两个原文链接: https://blog.csdn.net/u013755307/article/details/19913655 https://www.cnblogs.com/scolia/p ...

  9. System.Web.Mvc.FileStreamResult.cs

    ylbtech-System.Web.Mvc.FileStreamResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, P ...

  10. Thrift(PHP)入门无错篇章(一)

    一.安装篇 博主注:截至2017-10-10,官网上thrift最新版0.10.0一直无法成功编译.所以,请选择0.9.3版本,避免走各种弯路: wget http://apache.fayea.co ...