zoukankan      html  css  js  c++  java
  • 数据结构 速记篇

    一、结构图

               

     

    二、线性表

      1、特征

        1)线性表是一个序列。

        2)0个元素构成的线性表是空表。

        3)一般来说,线性表中的第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继。特殊:循环链。

        4)线性表是有长度的,其长度就是元素个数,且线性表的元素个数是有限的,也就是说,线性表的长度是有限的。

      2、分类

        1)顺序表:用一段地址连续的存储单元依次存储线性表的数据元素,其实就是数组

          优点:

          1、无需为了表示表中元素之间的逻辑关系而增加额外的存储空间(相对于链式存储而言)。

          2、可以快速的存取表中任意位置的元素。

          缺点:

          1、插入和删除操作需要移动大量的元素。

          2、当线性表长度变化较大时,难以确定存储空间的容量。

          3、容易造成存储空间的“碎片”

        2)链表:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置。即链表由一个或者多个结点(Node,数据域和指针域)组成。

    (转)  

         单链表:每个链表只包含一个指针域

         双链表:它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。

    三、栈

      1、特征;

        1)只能在表的一端(栈顶),进行插入、删除

        2)先进后出,后进先出(LIFO

      2、分类:

        1)顺序栈:“上溢”“下溢”问题

        2)链栈:它就象是一条一头固定的链子,可以在活动的一头自由地增加链环(结点)而不会溢出

    四、队列

      1、特征:

        1)插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头(Front)

        2)先进先出(FIFO

      2、分类:

        1)顺序队列:“假上溢”,解决方法:使用循环队列

        2)链队:

    五、树

      1、二叉树

        1)特征:除了叶(没有子节点)以外的结点,都有两个子

        2)树的遍历   

          1> 前序遍历:从上往下,从左到右,根——>左——>右

          

          2> 中序遍历:从下往上,从左往右,左——>根——>右

          

          3> 后序遍历:从下往上,从左往右,左——>右——>根

          

        3)习题:二叉树的先序遍历为:F B A C D E G H,中序遍历为:A B D C E F G H ,问该二叉树的后序遍历是?

        4)习题:如图二叉树的,中序、后序遍历是?

          中序遍历:D、C、F、B、G、O、E、H、A、J、P、K、I、M、L、N

          后序遍历:D、F、C、O、G、H、E、B、P、K、J、M、N、L、I、A

  • 相关阅读:
    python基础33——进程池&线程池/协程
    python基础32——线程
    pycharm2020
    python基础31——进程
    python基础31——操作系统史&多道
    jmeter如何保持JSESSIONID
    Jmeter中自动重定向与跟随重定向的区别
    Jmeter之HTTP Cookie 管理器
    Kubernetes简述
    docker集群部署
  • 原文地址:https://www.cnblogs.com/zxguan/p/7821326.html
Copyright © 2011-2022 走看看