BoomMan

爱生活,爱Coding.....

笔试常见问题之子网掩码计算和二叉树的前中后遍历

子网掩码相关

概念部分

1.IP地址:

网络中计算机的地址。

我们把网络ID相同的的计算机组成的一个网络成为本地网络
网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。
IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。

1、A类IP地址
  一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 
  地址范围从1.0.0.0126.0.0.0。
  可用的A类网络有126个,每个网络能容纳1亿多个主机。
2、B类IP地址
   可用的B类网络有16382个,每个网络能容纳6万多个主机。
  
3C类IP地址
  一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。
  范围从192.0.0.0223.255.255.255C类网络可达209万余个,每个网络能容纳254个主机。
  
4D类地址用于多点广播(Multicast)。
  D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,
  目前这一类地址被用在多点广播(Multicast)中。
  多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
  
5E类IP地址
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
  A类地址:10.0.0.010.255.255.255
  B类地址:172.16.0.0172.31.255.255
  C类地址:192.168.0.0192.168.255.255

2.子网掩码

        当为一台计算机分配IP地址后,该计算机的IP地址哪部份表示网络ID,哪部份表示主机ID,并不由IP地址所属的类来确定,而是由子网掩码确定。
        子网确定一个IP地址属于哪一个子网。
        子网掩码的格式是以连续的255后面跟连续的0表示,其中连续的255这部份表示网络ID;连续0部份表示主机ID。比如,子网掩码255.255.0.0和255.255.255.0。
        根据子网掩码的格式可以发现,子网掩码有0.0.0.0、255.0.0.0、255.255.0.0、255.255.255.0和255.255.255.255共五种。
        采用这种格式的子网掩码每个网络中主机的数目相差至少为256倍,不利于灵活根据企业需要分配IP地址。比如,一个企业有2000台计算机,用户要么为其分配子网掩为255.255.0.0,那么该网络可包含65534台计算机,将造成63534个IP地址的浪费;要么用户为其分配8个255.255.255.0网络,那么必须用路由器连接这个8个网络,造成网络管理和维护的负担。
        网络ID是IP地址与子网掩码进行与运算获得,即将IP地址中表示主机ID的部份全部变为0,表示网络ID的部份保持不变,则网络ID的格式与IP地址相同都是32位的二进制数;主机ID就是表示主机ID的部份。

3.IP地址的网络号:

129.168.1.1 /24   代表网络号位数是 24位 即 
子网掩码是:11111111 11111111 11111111 00000000即:255.255.255.0
网络ID是 129.168

4.主机号:

例题1:IP地址:192.168.23.35 子网掩码:255.255.0.0
    网络ID:192.168.0.0  主机ID:23.35
例题2:IP地址:192.168.23.35  子网掩码:255.255.255.0
    网络ID:192.168.23.0  主机ID:35

5.子网数:


子网数=2^网络位

网络位为默认的子网掩码中加入的位数

例:C类默认掩码为 255.255.255.0 转化为2位数为:11111111.11111111.11111111.00000000C类地址,使用的子网掩码为:255.255.255.192,转化为2位为:11111111.11111111.11111111.11000000,较默认的增加了两个1,即2个位数

则子网数为:2^2=4

6.主机数:

把网络地址117.15.32.0/23划分为114.15.32.0/27,则得到的子网是_____个?每个子网中可使用的主机地址是_____个?

掩码从23扩大到27,多了4个子网位,因此可以分2^4=16个子网。
每个子网的主机位是32-27=5,因此每个子网可使用的主机ip是2^5-2=30。

7.主机号和网络号关系

主机号根据子网掩码的1决定,网络号根据子网掩码的0决定

子网掩码是32位,也就是和为32位

计算方法

1)利用子网数来计算

  在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
  (1) 将子网数目转化为二进制来表示;
  如欲将B类IP地址168.195.0.0划分成27个子网:27=11011;
  (2) 取得该二进制的位数,为N;
  该二进制为五位数,N = 5
  (3) 取得该IP地址的类子网掩码,将其主机地址部分的的前N位置1即得出该IP地址划分子网的子网掩码。
  将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到 255.255.248.0
  

2)利用主机数来计算

  如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
  (1) 将主机数目转化为二进制来表示;
  700=1010111100;
  (2) 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;
  该二进制为十位数,N=10;
  (3) 使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

3)还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。

比如一个子网有10台主机,那么对于这个子网需要的IP地址是:
  10+1+1+1=13
  注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。
  因为13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。
  如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17,17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。
  

4)有一个IP地址为192.168.1.200,子网掩码是255.255.255.224,要求计算其网络地址、主机地址和广播地址。

解:把子网掩码换算成2进制,1对应的部分是网络地址,0对应的部分是主机地址,把主机地址各位全部变成1就是广播地址。
因此首先把255.255.255.224换算成2进制,就是1
1111111.11111111.11111111.11100000,然后把IP地址也换算成2进制,就是11000000.10101000.00000001.11001000,对他们进行求逻辑与运算,因此可以得到网络地址就是11000000.10101000.00000001.11000000,即192.168.1.192;主机地址就是01000,即划线那一部分;
广播地址就是将主机地址部分全部边成“1”即,11000000.10101000.00000001.11011111,转换后得出192.168.1.223。

网络地址=IP地址&子网掩码
主机地址=IP地址中的主机地址
广播地址=网络地址中的主机地址全为1

公司 包含子公司 子公司包含部门
一步一步划分

直接广播地址就是常见的广播地址,是可以算出来的,是局域网中用到的。还有一种是受限广播地址,就是255.255.255.255,从字面上理解就是受限制用的,就是专用的,没有子网的。这样在INTERNET里有安全性。因为你不论和谁都不会成为一个字网里。只要不是255.255.255.255都是直接广播地址

试题练习
https://www.nowcoder.com/search?type=question&order=time&query=%E5%AD%90%E7%BD%91%E5%88%92%E5%88%86&page=1

快速记忆下

2^1=2
2^2=4
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256

10000000 = 128
11000000 = 192
11100000 = 224
11110000 = 240
11111000 = 248
11111100 = 252
11111110 = 254
11111111 = 255

小结

在计算子网掩码问题 要快速,记录下二进制数值,要记住ABCDE的范围。

复习下

10000000  =  128
11100000  =  224
11110000  =  240
11111111  =  255
以上为常用

A类:  地址范围从1.0.0.0 到126.0.0.0。          子网掩码255.0.0.0
B类:  地址范围从128.0.0.0 到 191.255.255.254。 子网掩码255.255.0.0
C类:  地址范围从192.0.0.0到223.255.255.255。   子网掩码255.255.255.0

网络地址=IP地址&子网掩码
主机地址=IP地址中的主机地址
广播地址=网络地址中的主机地址全为1

二叉树相关

二叉树概念

遍历:遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问.

遍历分为:前序遍历,中序遍历,后序遍历.

前序遍历: 根 左 右

中序遍历: 左 根 右

后序遍历: 左 右 根

在遍历时要始终满足 遍历顺序,即递归思想

笔试相关

1.前、中、后序,知道其中哪两个就可以还原二叉树?

(一)、前序的第一个节点和后序的最后一个节点是根节点
(二)、知道一棵二叉树的根,同时知道其中序序列,就可以知道根的左子树序列和右子树序列.因为中序序列中的根前的结点属于左子树,根后的结点属于右子树。

所以 前序+中序 后序+中序 都可获得原二叉树

2.根据二叉树 写出前中后序

这里写图片描述

前:ABCDEFGHK
中:BDCAEHGKF
后:DCBHKGFEA

3.还原二叉树 前序+中序

已知该二叉树的先序遍历序列为:A-B-D-E-G-C-F,中序遍历序列为:D-B-G-E-A-C-F。

1.首先找出根节点 由先序遍历得知 根节点为A

2.由中序遍历 分开为 根的左节点和根的右节点 DBGE为根的左部分 CF为根的右部分

3.重复以上步骤

这里写图片描述

通过两组练习 每天练就好了

前序 ABCDEFGHI
中序 BCAEDGHFI

这里写图片描述

4.还原二叉树 中序+后序

后序 左边是右边
实际看中序

总结


前序遍历:   根  左  右 

中序遍历:   左  根  右

后序遍历:   左  右  根

严格按照访问顺序
根据先序和中序推原图

1.Search Root
2.Search  LeftChildren  RightChildren
3.Repeat 1.2
前序左边是左边,实际看中序

后序左边是右边,实际看中序
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boom_man/article/details/78338578
个人分类: JAVA
想对作者说点什么? 我来说一句

数据结构-二叉树的基本算法

2009年07月30日 511KB 下载

没有更多推荐了,返回首页

不良信息举报

笔试常见问题之子网掩码计算和二叉树的前中后遍历

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭