zoukankan      html  css  js  c++  java
  • 笔试题目整理

    <1> 完全二叉树的叶子节点数的计算;

    <2> Http的返回码含义

    1.完全二叉树的叶子节点数的计算;

      1.完全二叉树

      若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。叶子节点只可能在最大的两层上出现,对任意结点,若其右分支下的子孙最大层次为L,则其左分支下的子孙的最大层次必为L 或 L+1;

      满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

      如果已知一个完全二叉树的节点数如何来进行计算呢?简单地思路是:直接判断层数:以2位底对节点数进行曲对数log,然后将得到的结果进行取整,取整后+1.一般要求我们熟练知道2的幂次,2的8次方是256,记住一个就好了。

      第一种方式:

      知道了数的深度,我们就可以去自己推测该二叉树的叶子节点数,因为完全二叉树的叶子节点都是集中在最后一层和倒数第二层。

      如果一个题目中的节点数总共为699,如何计算呢?首先699直接获取他的深度:10层,前九层全部铺满为511个节点所以前九层全部铺满,剩余699-511=188个节点,这188全部都是子节点位于第10层,在这188个节点将会占用自己左侧的父节点94个,也就是在第九层会有94个节点被占有,剩余256-94=162个节点,没有子节点了,也就是我们呢想要的叶子节点,此时得到最后的结果是162+188 = 350.一共350个叶子节点。

      第二种方式:

      可以根据公式进行推导,假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可 知:n0=n2+1,且n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2,就可根据完全二叉树的结点总数计算出叶子结点数。

    关于第二种方式的解释:以及二叉树的度

      首先说说什么是度:通俗的讲二叉树中连接节点和节点的线就是度,有n个节点,就有n-1个度,节点数总是比度要多一个,那么度为0的节点一定是叶子节点,因为该节点的下面不再有线;度为1的节点即:该节点只有一个分支;同理度为2的节点就是有两个分支。在二叉树中不可能存在度为3或大于3的节点!
      关于度和节点之间的关系还有很多公式:度为0的节点数为度为2的节点数加1,即n0=n2+1
    这个公式的推理方法如下:
    设:
    k:总度数
    k+1:总节点数
    n0:度为0的节点
    n1:度为1的节点
    n2:度为二的节点
    根据二叉树中度和节点的守衡原理,可列出以下一组方程:
    k=n2*2+n1;
    k+1=n2+n1+n0;
    将上面两式相减得到:n0=n2+1;
    例如:已知767个节点的完全二叉树,求其叶子节点个数:

    n0=n2+1;

    n=n0+n1+n2;

    由上面,消掉n2得到:n=2n0+n1-1;

    由于完全二叉树度为1的只有0个或1个两种情况,所以,将0或1带入上面公式,整理后得:

    n0=(n+1)/2或者n0=n/2;

    看看n是否能被2整除,能则用n0=n/2。否则用n0=(n+1)/2

    既叶子节点为n0=(n+1)/2=384

    -----------------------------------------------------------------

    再比如一棵二叉树有10个度为1的节点,7个度为2的节点,则二叉树有多少个节点(25)

    根据刚才说的,节点数比度数多1,可以列出计算式子:

    10 * 1 + 7 * 2 + 1 = 25

    2.HTTP返回码的含义

    HTTP协议状态码表示的意思主要分为五类 ,大体是 :  
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
    1××   保留   
    2××   表示请求成功地接收   
    3××   为完成请求客户需进一步细化请求   
    4××   客户错误       403?
    5××   服务器错误   

    100 Continue

    指示客户端应该继续请求。回送用于通知客户端此次请求已经收到,并且没有被服务器拒绝。

    客户端应该继续发送剩下的请求数据或者请求已经完成,或者忽略回送数据。服务器必须发送
    最后的回送在请求之后。

    101 Switching Protocols 
    服务器依照客服端请求,通过Upgrade头信息,改变当前连接的应用协议。服务器将根据Upgrade头立刻改变协议
    在101回送以空行结束的时候。

     Successful 

    =================================
    200 OK 
    指示客服端的请求已经成功收到,解析,接受。

    201 Created 
    请求已经完成并一个新的返回资源被创建。被创建的资源可能是一个URI资源,通常URI资源在Location头指定。回送应该包含一个实体数据
    并且包含资源特性以及location通过用户或者用户代理来选择合适的方法。实体数据格式通过煤体类型来指定即content-type头。最开始服务 器
    必须创建指定的资源在返回201状态码之前。如果行为没有被立刻执行,服务器应该返回202。

    202 Accepted 
    请求已经被接受用来处理。但是处理并没有完成。请求可能或者根本没有遵照执行,因为处理实际执行过程中可能被拒绝。

    203 Non-Authoritative Information

    204 No Content 
    服务器已经接受请求并且没必要返回实体数据,可能需要返回更新信息。回送可能包含新的或更新信息由entity-headers呈现。

    205 Reset Content 
    服务器已经接受请求并且用户代理应该重新设置文档视图。

    206 Partial Content 
    服务器已经接受请求GET请求资源的部分。请求必须包含一个Range头信息以指示获取范围可能必须包含If-Range头信息以成立请求条件。

    Redirection 
    ==================================
    300 Multiple Choices
    请求资源符合任何一个呈现方式。

    301 Moved Permanently 
    请求的资源已经被赋予一个新的URI。

    302 Found 
    通过不同的URI请求资源的临时文件。
    303 See Other

    304 Not Modified 
    如果客服端已经完成一个有条件的请求并且请求是允许的,但是这个文档并没有改变,服务器应该返回304状态码。304
    状态码一定不能包含信息主体,从而通常通过一个头字段后的第一个空行结束。

    305 Use Proxy
    请求的资源必须通过代理(由Location字段指定)来访问。Location资源给出了代理的URI。

    306 Unused

    307 Temporary Redirect

     

    Client Error 
    =====================
    400 Bad Request 
    因为错误的语法导致服务器无法理解请求信息。

    401 Unauthorized 
    如果请求需要用户验证。回送应该包含一个WWW-Authenticate头字段用来指明请求资源的权限。

    402 Payment Required 
    保留状态码

    403 Forbidden 
    服务器接受请求,但是被拒绝处理。

    404 Not Found 
    服务器已经找到任何匹配Request-URI的资源。

    405 Menthod Not Allowed 
    Request-Line 请求的方法不被允许通过指定的URI。

    406 Not Acceptable

    407 Proxy Authentication Required

    408 Reqeust Timeout 
    客服端没有提交任何请求在服务器等待处理时间内。

    409 Conflict

    410 Gone

    411 Length Required 
    服务器拒绝接受请求在没有定义Content-Length字段的情况下。

    412 Precondition Failed

    413 Request Entity Too Large 
    服务器拒绝处理请求因为请求数据超过服务器能够处理的范围。服务器可能关闭当前连接来阻止客服端继续请求。

    414 Request-URI Too Long 
    服务器拒绝服务当前请求因为URI的长度超过了服务器的解析范围。

    415 Unsupported Media Type 
    服务器拒绝服务当前请求因为请求数据格式并不被请求的资源支持。

    416 Request Range Not Satisfialbe

    417 Expectation Failed

     

    Server Error 
    ===================================
    500 Internal Server Error 
    服务器遭遇异常阻止了当前请求的执行

    501 Not Implemented 
    服务器没有相应的执行动作来完成当前请求。

    502 Bad Gateway

    503 Service Unavailable 
    因为临时文件超载导致服务器不能处理当前请求。

    504 Gateway Timeout

    505 Http Version Not Supported

     

     

  • 相关阅读:
    由浅入深——从ArrayList浅谈并发容器
    Lambda表达式
    JVM初体验
    Redis主从复制
    Redis事务
    Redis基本命令
    Redis概述与安装
    Linux之SSH免密登录
    源码安装Nginx以及用systemctl管理
    CentOS 7 :Failed to start IPv4 firewall with iptables.
  • 原文地址:https://www.cnblogs.com/fuck1/p/5833813.html
Copyright © 2011-2022 走看看