zoukankan      html  css  js  c++  java
  • 【笔记】数据结构、算法2

    1、n个结点的完全有向图含有边的数目()

    完全有向图:任何两个结点间都有连接,且有两个方向的边
    有向边:n* n-1、无向边:(n*(n-1))/2

    2、已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历是()cedba

    先序:根左右、
    中序:左根右、
    后序:左右根

    3、F=(a,F)是一个递归的广义表,它的深度是1,长度是2。( ) 错误

    广义表是由n个元素组成的序列,n是广义表的长度。
    广义表的深度: 广义表中括号的最大层数叫广义表的深度。
    F=(a,F)长度为2,由于属于递归表,因此F相当于一个无限表。

    4、单循环链表的主要优点是()。 已知某个结点的位置后,能够容易找到它的直接前趋

    单循环链表:如果把单链表的最后一个节点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链表,通俗讲就是把尾节点的下一跳指向头结点。

    5、模式串的长度是m,主串的长度是n(m<n),使用KMP算法匹配的时间复杂度是()

    KMP为线性算法,处理主串和模式串的时间处理的复杂度都为O(n),因此总时间复杂度为O(n+m)

    6、关于 Array 数组对象的说法不正确的是()

    • push方法是向数组末尾添加一个或者多个元素,并返回新的长度
    • pop方法删除数组的最后一个元素,把数组的长度减1,并且返回它被删除元素的值,如果数组变为空,则该方法不改变数组,返回undefine值
    • unshift()方法是向数组的开头添加一个或多个元素,并且返回新的长度
    • shift()方法和unshift()方法恰恰相反。该方法用于把数组的第一个元素从其中删除,并返回被删除的值。如果数组是空的,shift()方法将不进行任何操作,返回undefined的值。
    • join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

    7、一个有n个结点的连通图的生成树是原图的最小连通子图,且包含原图中所有n个结点,并且有保持图联通的最少的边。最大生成树就是权和最大生成树,现在给出一个无向带权图的邻接矩阵,权为0表示没有边。{{0,4,5,0,3},{4,0,4,2,3},{5,4,0,2,0},{0,2,2,0,1},{3,3,0,1,0}},求这个图的最大生成树的权和。

    G=(V,E)在E中选择代价最小的边,若该边依附的顶点分别在T中不同的连通分量上,则将此边加入到T中;
    反向利用Kruskal算法,选择最大边,且不形成回路,则如图:

    8、连通分量是无向图中极小连通子图。 错误

    概念:
    (1)在无向图中,如果顶点Vi到顶点Vj有路径,则称顶点Vi和Vj连通。

    (2)如果无向图中任意两个顶点之间都连通,则称为连通图。

    (3)如果不是连通图,则图中的极大连通子图称为连通分量。

    因此。连通分量是无向图中的极大连通子图,那么极大连通子图又是什么呢?

    • 极大连通子图是无向图的连通分量,极大要求该连通子图包含其所有的边。
    • 极小连通子图是既要保持图连通,又要使得边数最少的子图。

    在有向图中,则有强连通,强连通图,强连通分量

    (1)在有向图中,如果从Vi到Vj 和 从Vj到Vi之间都有路径,则称这两个顶点是强连通的

    (2)若图中任何一对顶点都是强连通的,则称此图为强连通图

    (3)有向图中的极大强连通子图称为有向图的强连通分量

  • 相关阅读:
    http从发出请求到接收响应的旅行
    git(二)github的使用入门及搜索技巧
    git(一) 基础
    获取基于Internet Explorer_Server的聊天窗口内容
    主机字节与网络字节的转换
    SQL Server存储过程中防止线程重入处理方式
    利用NVelocity 模版生成文本文件
    C# async await 学习笔记2
    C# async await 学习笔记1
    imx6 工具链下载地址
  • 原文地址:https://www.cnblogs.com/acmer-hmin/p/13516021.html
Copyright © 2011-2022 走看看