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. mybatis-plus分页查询

    在springboot中整合mybatis-plus 按照官方文档进行的配置:快速开始|mybatis-plus 引入依赖: <!-- 引入mybatisPlus --> <depe ...

  2. Startup里面的一些用法

    using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; usi ...

  3. 虚拟机上CentOS7 配置NAT模式

    1. 虚拟机网络适配器选择NAT模式 2. 使用vi编辑/etc/sysconfig/network-scripts/ifcfg-ens32 vi /etc/sysconfig/network-scr ...

  4. RSA算法的基本原理

    记得在我上初一的时候做过这么一道数学竞赛题,就是求7的222次方的个位数字.当时教材上介绍的解题方法是将222分解成4*55+2,然后算出7的2次方个个位数字即为要算的数值.当时年幼无知的我根本不了解 ...

  5. 线性dp——求01串最大连续个数不超过k的方案数,cf1027E 好题!

    只写了和dp有关的..博客 https://www.cnblogs.com/huyufeifei/p/10351068.html 关于状态的继承和转移 这题的状态转移要分开两步来做: 1.继承之前状态 ...

  6. pytorch基础2

    下面是常见函数的代码例子 import torch import numpy as np print("分割线---------------------------------------- ...

  7. JS的 try catch 前端使用场景(尽管不多还是会用到)

    try{ //正常执行 }catch(e/*你感觉会出错的 错误类型*/){ // 可能出现的意外 eg:用户自己操作失误 或者 函数少条件 不影响下面的函数执行 // 有时也会用在 比如 focus ...

  8. laravel中如何使用Redis(Redis是什么)

    laravel中如何使用Redis(Redis是什么) 一.总结 一句话总结: 基于内存亦可持久化键值数据库 Redis是完全开源免费的,遵守BSD协议,是一个高性能的键值数据库.是当前最热门的的的N ...

  9. Bitcoin 的基本原理

    昨天读到了 Bitcoin 的中文介绍,觉得非常有意思.不过上面这篇文章解释的非常不靠谱,我花了一晚上去Bitcoin的官方网站 仔细研究了一下,总算理解了其原理.感觉非常有启发,尤其是对虚拟货币的流 ...

  10. PAT甲级——A1099 Build A Binary Search Tree

    A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...