zoukankan      html  css  js  c++  java
  • 软件设计师复习备考(四)

    数据结构与数据运算(本部分主要以选择题为主,约占5分

    线性结构

    1、顺序存储:优点:可以随机存取表中元素。缺点:插入与删除需要移动元素。

    2、链式存储:优点:插入与删除不需要移动元素。缺点:不能对数据元素进行随机访问。

    3、栈:“先进后出”的线性表。(一般常考双向栈,如图

    4、队列:一种“先进先出”的线性表。(一般常考循环队列、双端队列

    4.1、循环队列:判空:rear=front  判满:front=(rear+1)%MaxSize  循环队列约定以“队尾指针所指的下一个位置时对头指针”来表示“队列满”的情况。

    4.2、双端队列:要求元素进出队列必须在同一端口,可理解为两个栈。

     

    5、串:仅由字符构成的有限序列,是一种线性表,一般记为s="a1a2a3…an"(n>0),其中,s为串名,引号内为串值。

    空串:长度为0的串称为空串,空串不包含任何字符。

    空格串:由一个或多个空格组成的串。

    字串:由串中任意长度的连续字符构成的序列称为字串。含有字串的串称为主串。空串是任何串的子串。

    非线性结构 

     1、二维数组(数组只适合顺序存储)

    数据元素数目固定,一旦定义了一个数组结构,就不再有元素个数的增减变化。

    数据元素具有相同的类型。

    数据元素的下表关系具有上下界约束且下标有序。

     以行为主序优先存储的地址计算公式为:

    Loc(aiaj)=Loc(a11)+((i-1)*n+(j-1))*L

     以列为主序优先存储的地址计算公式为:

    Loc(aiaj)=Loc(a11)+((j-1)*m+(j-1))*L

    1.1、三对角矩阵:以行为主序将n阶三对角矩阵An*n的非0元素aij存储在一维数组B[k](1<=k<=3*n-2)中,则元素位置之间的对应关系为:

    k=3*(i-1)-1+j-i=2i+j(1<=i,j<=n)

     2、树

    树的基本概念:

    双亲、孩子和兄弟。结合的子树的根称为该结点的孩子结点;相应地,该结点称为其子结点的双亲。具有相同双亲的结点互为兄弟。

    结点的度。一个结点拥有子树的个数称为该结点的度。

    叶子结点。叶子结点是指度为0 的结点。

    内部节点。除根结点外,度不为0的结点。

    结点的层次。结点所在的层,从上往下数,根节点为第一层。

    树的深度。一棵树的最大层数为该树的深度(或高度)。

    有序/无序树。如果树中各结点的各个子树是从左到右有序排列且不能交换时,则称该树为有序树,否则称为无须树。

    二叉树:

    每个结点最多有两个子树。

    满二叉树与完全二叉树:如果一个二叉树的层数为k,结点总数为2^k-1个,则它就是满二叉树。(通俗点说就是整棵树叶子结点都是满的) 在一个深度为h的二叉树中,除第h层外(最后一层),其他层都是满的,且最后一层所有的结点都必须从左到右依次放置,不能留空,则称该二叉树为完全二叉树。

    二叉排序树:左子树上所有节点的值小于根节点的值,右子树上所有节点的值大于根节 点的值

    平衡二叉树(AVL 树):左子树和右子树高度之差的绝对值不超过 1

    二叉树的性质

    性质一:在二叉树的i层上至多有2 i-1个节点(i>=1)至少有1个

    性质二:深度为k的二叉树至多有2k-1个节点,至少为k个

    性质三:对任何一棵二叉树T,如果终端结点树为n,度为2的结点为n2,度为0的结点为n0 则n0=n2+n1

    性质四:具有n个节点的完全二叉树的深度为[log2n]+1向下取整

    性质五:如果有一颗有n个节点的完全二叉树的节点按层次序编号,对任一层的节点i(1<=i<=n)有

                1.如果i=1,则节点是二叉树的根,无双亲,如果i>1,则其双亲节点为[i/2],向下取整

                2.如果2i>n那么节点i没有左孩子,否则其左孩子为2i

                3.如果2i+1>n那么节点没有右孩子,否则右孩子为2i+1

    二叉树的遍历

    前序(根、左、右)、后序(左、右、根)、中序(左、根、右)、顺序遍历(从上到下、从左到右)  (所谓的前、后、中指的是根遍历的位置

    最优二叉树(哈夫曼树)

    最优二叉树又称为哈夫曼树,是一种带权路径长度最短的二叉树。  哈夫曼树与完全二叉树、平衡二叉树之间没有必然的联系。

    图的表示。G=(V,E);V:顶点的集合;E:边的集合

    邻接矩阵。邻接矩阵表示法是指用一个矩阵表示图中顶点之间的邻接关系。

    邻接表。邻接表表示法是指为图中的每一个顶点建立一个单链表。

    图的遍历。图的遍历可以分为深度优先遍历、广度优先遍历两种方法,深度优先遍历类似于树的前序遍历,广度优先遍历则相当于树的层次遍历。

    关键路径:从源点到汇点的路径中长度最长的

    最短路径:从源点到其余各顶点的最短路径-----迪杰斯克拉算法

    数据运算

     顺序查找、二分查找、哈希查找

    哈希表:通过哈希函数(以记录的关键字为自变量)得到记录的存储地址;定长按一定 函数规律存放数据;哈希地址+关键字

    排序

  • 相关阅读:
    java冒泡算法和选择排序法
    JDBC操作数据库,比如修改电商数据库中的分类的id,让各商品随机
    RF使用
    安装RF框架(基于Python)
    selenium+java的常使用的一些操作
    selenium的常用操作
    selenium的8种定位方式(java举例)
    服务管理
    Linux软件安装
    项目依赖
  • 原文地址:https://www.cnblogs.com/yqPhare/p/14314333.html
Copyright © 2011-2022 走看看