数据结构 速记篇

一、结构图

           

 

二、线性表

  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

原文地址:https://www.cnblogs.com/zxguan/p/7821326.html