<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[蓝天的博客]]></title><description><![CDATA[学习点滴，欢迎交流]]></description><link>https://blog.youkuaiyun.com/xiaohaiguang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaohaiguang]]></copyright><item><title><![CDATA[TCP/IP 协议之动态路由协议   RIP]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/108614089</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/108614089</guid><author>xiaohaiguang</author><pubDate>Sat, 24 Oct 2020 23:47:37 +0800</pubDate><description><![CDATA[一、动态路由协议

1.动态路由协议产生背景

ip数据报在网络上传播从源端经过具体的路径到达目的端，这就是路由，而路由器中就有一张路由表，记录了很多的路由信息。

我们在命令行中使用 ip PRINT -4 命令打印路由表，结果如下：


IPv4路由表

我们重点来看网络目标和接口这两项，网络目标表示到达的目的地，可以是一个主机地址或者是一个网络地址。

接口表示从哪个接口转发数据报，以便能到达该网络目标。



二、RIP









三、总结
...]]></description><category></category></item><item><title><![CDATA[平衡二叉树（树的旋转）]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/109099424</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/109099424</guid><author>xiaohaiguang</author><pubDate>Thu, 15 Oct 2020 16:18:11 +0800</pubDate><description><![CDATA[1.概念
平衡二叉树建立在二叉排序树的基础上，目的是使二叉排序树的平均查找长度更小，即让各结点的深度尽可能小，因此，树中每个结点的两棵子树的深度不要偏差太大。
平衡二叉树的递归定义：平衡二叉树是一棵二叉树，其可以为空，或满足如下2个性质：①左右子树深度之差的绝对值不大于1。②左右子树都是平衡二叉树。
平衡因子的概念：结点的平衡因子 = 结点的左子树深度 — 结点的右子树深度。若平衡因子的取值为-1、0或1时，该节点是平衡的，否则是不平衡的。
最低不平衡结点的概念：用A表示最低不平衡结点，则A的祖先结点可能有]]></description><category></category></item><item><title><![CDATA[常量指针、指向常量的指针、指向常量的常量指针]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107432036</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107432036</guid><author>xiaohaiguang</author><pubDate>Sun, 19 Jul 2020 10:44:24 +0800</pubDate><description><![CDATA[一、指针常量

指针是一个常量，不能改变指向






#include&lt;iostream&gt;
using namespace std;

int main()
{
	int a = 10;
	int b = 20;
	int * const p  = &amp;b;
	p = &amp;a; //	[Error] assignment of read-only variable 'p'
	cout&lt;&lt;*p&lt;&lt;endl;
	return 0;
} 



二、常量指...]]></description><category></category></item><item><title><![CDATA[指向指针的引用与指向引用的指针]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107431324</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107431324</guid><author>xiaohaiguang</author><pubDate>Sat, 18 Jul 2020 17:11:58 +0800</pubDate><description><![CDATA[目录

一、引用

二、指针

三、指向指针的引用

四、指向引用的指针

一、引用

引用只是变量的一个别名，引用只能引用变量，并且只能引用一次，不能引用A再引用B，引用没有自己的地址



#include&lt;iostream&gt;
using namespace std;


int main()
{
	int a = 10;
	int &amp; b = a;
	b = 20;
	cout&lt;&lt;"a = "&lt;&lt;a&lt;&lt;"\t"&lt;&lt;"b = "&lt.]]></description><category></category></item><item><title><![CDATA[（五）合并两个排序的链表]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107129107</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107129107</guid><author>xiaohaiguang</author><pubDate>Sun, 05 Jul 2020 14:41:54 +0800</pubDate><description><![CDATA[一、思路

想起来了归并排序，就是两个链表中对应位置的结点进行比较，较小的插入到一个新的链表里

1.如果A链表到达尾结点，B链表没有到达尾结点，那么直接将B链表剩余结点插入到新链表中

2.如果B链表到达尾结点，A链表没有到达尾结点，那么直接将A链表剩余结点插入到新链表中

3.释放原有A,B链表空间

4.输出新链表

二、代码









三、测试









四、总结
...]]></description><category></category></item><item><title><![CDATA[（四）反转链表]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107128278</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107128278</guid><author>xiaohaiguang</author><pubDate>Sat, 04 Jul 2020 19:05:41 +0800</pubDate><description><![CDATA[目录



一、思路

二、代码

三、测试

四、总结

一、思路

反转链表，就是改变链表的结点指向，这里我们来分析以下需要的操作以及相应的注意点。

1.反转链表需要将当前结点的指针域指向前驱结点，所以第一我们需要找到当前结点

2.第二，需要找到前驱结点的地址

3.这时，还有一个问题，那就是如果改变了当前结点的指向，那么我们的后继结点就会丢失，所以我们需要保存后继结点

综上我们需要三个指针变量来表示这些关系

二、代码


#include&lt;iostream&gt;
#include ".]]></description><category></category></item><item><title><![CDATA[（三）求链表中间结点]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107126817</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107126817</guid><author>xiaohaiguang</author><pubDate>Sat, 04 Jul 2020 17:47:18 +0800</pubDate><description><![CDATA[目录



一、思路

二、代码

三、测试

四、总结

一、思路

先上关键代码


        LinkList  front_Node = L-&gt;next;
	LinkList  later_Node = L-&gt;next;
	while(front_Node-&gt;next != NULL)
	{
		if(front_Node-&gt;next-&gt;next !=NULL)
			front_Node = front_Node-&gt;next-&gt;next;
		el.]]></description><category></category></item><item><title><![CDATA[（二）求链表中倒数第k个节点]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107123233</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107123233</guid><author>xiaohaiguang</author><pubDate>Sat, 04 Jul 2020 16:33:27 +0800</pubDate><description><![CDATA[目录



一、思路

二、代码

三、测试

四、总结

一、思路



设置两个指针，一个快指针，一个慢指针。快指针初始值指向第一个结点，慢指针则指向空

顾名思义，快指针先出发，等到快指针到达k-1位置时，令慢指针指向第一个结点，然后慢指针和快指针一起出发

等到快指针到达尾结点，此时，慢指针正好到达倒数第K个结点。



至于为什么是K-1，而不是K。我们看证明，证明如下：

设链表长度为1，k= 1, y=k-1,那么y =0,也就是说快指针从第一个结点出发，令慢指针指向第一个结点，否则当...]]></description><category></category></item><item><title><![CDATA[（一）数组中奇数元素在前，偶数在后，并各自从小到大排序]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107120991</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107120991</guid><author>xiaohaiguang</author><pubDate>Sat, 04 Jul 2020 12:15:11 +0800</pubDate><description><![CDATA[目录

一、规则

二、代码

三、测试

一、规则



使数组中所有奇数放到偶数前面，并且奇数部分从小到大排序，偶数部分从小到大排序

输入规则：

   第一行：输入一个整数，代表数组中的元素个数

   第二行：输入数据

输出：

   所有奇数在前，偶数在后并且奇数部分从小到大排序，偶数部分从小到大排序

样例：

   输入：

      5
      1 2 3 4 5

   输出：

      1 3 5...]]></description><category></category></item><item><title><![CDATA[python链式调用]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107051993</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107051993</guid><author>xiaohaiguang</author><pubDate>Tue, 30 Jun 2020 22:30:54 +0800</pubDate><description><![CDATA[一、链式调用含义

所谓链式调用就是调用完一个函数后还能再继续调用其它函数，这样大大减少了代码量，尤其是项目比较大的时候，



普通调用就是对象名.函数1  ......  对象名.函数2


people.setName("小海")

people.setAge(20)

而链式调用就是可以只写一次对象名，就可以达到同样的效果，原理就是每次调用返回的是一个对象而不是普通变量


people.setName("小海").setAge(20)



二、代码


#!/usr/bin/...]]></description><category></category></item><item><title><![CDATA[2.3  线性表的链式表示和实现（双向循环链表）]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/105842710</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/105842710</guid><author>xiaohaiguang</author><pubDate>Tue, 30 Jun 2020 21:29:45 +0800</pubDate><description><![CDATA[盛年不重来，一日难再晨。及时宜自勉，岁月不待人。

                                           ——陶渊明




一、前言

学习了单链表，那么双向循环链表的意思就是一个结点有两个指针域，分别指向直接前驱结点和直接后继结点，并且尾结点指向头结点，这样的好处是什么呢？
...]]></description><category></category></item><item><title><![CDATA[python计算四位黑洞数]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107049259</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/107049259</guid><author>xiaohaiguang</author><pubDate>Tue, 30 Jun 2020 20:02:49 +0800</pubDate><description><![CDATA[朝看晨曦，暮浴夕阳，春来赏花，秋望水长。


一、黑洞数含义



    任何一个数字不全相同整数，经有限“重排求差”操作，总会得某一个或一些数，这些数即为黑洞数。“重排求差”操作即把组成该数的数字重排后得到的最大数减去重排后得到的最小数。--摘自百度百科

关键字：有限操作、固定数、最大数减去最小数



二、思路


 1.随便找一个数字不全相同的4位整数
 2.把该整数的每一位存入到列表1中
 3.对列表1进行排序，找出最小值存到变量1中
 4.反转列表1...]]></description><category></category></item><item><title><![CDATA[网络规划实例（二）]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106943221</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106943221</guid><author>xiaohaiguang</author><pubDate>Wed, 24 Jun 2020 14:36:46 +0800</pubDate><description><![CDATA[文章目录一、需求分析二、网络拓扑结构三、	ip地址规划设计四、主要设备配置方案1.三层交换机2.路由器Router 03.路由器Router 14.二层交换机5、网络测试
一、需求分析
模拟器：Cisco  Packet Tracer  版本  5.3.3.0019
如下图所示网络拓扑，某公司北京总部四个部门通过交换机统一连接到核心交换机上，总部设有财务、研发、高管、信息中心四个部门，每个部门属于一个VLAN。我们需要在二层交换机上配置端口安全和流量控制。为了保证财务部的敏感数据的安全性，我们需要在在三层交]]></description><category></category></item><item><title><![CDATA[第一章 计算机系统概述（2）]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106567800</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106567800</guid><author>xiaohaiguang</author><pubDate>Mon, 15 Jun 2020 00:04:06 +0800</pubDate><description><![CDATA[夫学须志也，才须学也，非学无以广才，非志无以成学。——诸葛亮


1.2 操作系统的发展与分类

知识框架







1.2.1 手工操作阶段





1.2.2 批处理阶段





1.2.3 分时操作系统





1.2.4 实时操作系统





1.2.5 网络操作系统和分布式计算机系统



1.2.6 个人计算机操作系统
...]]></description><category></category></item><item><title><![CDATA[基于 RedHat 5  DNS服务器的架设详细步骤]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106739424</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106739424</guid><author>xiaohaiguang</author><pubDate>Sat, 13 Jun 2020 22:40:49 +0800</pubDate><description><![CDATA[1.DNS产生背景
​       我们知道ip地址一开始是32位的，分成四段，用点分十进制表示，我们在浏览器上浏览文章时，我相信大家应该没有见过在地址栏中出现ip地址吧，这样是因为数字不太容易记住，人脑更喜欢记忆符号化的数据。
​		网络上的数据需要通过ip地址来进行路由，最终传送到目的地，比如ip报文中首部的源地址和目的地址，没有ip地址是不行的，但为了解决难记忆的问题，人们想到把ip地址映射到一个主机名，这样访问该主机名就相当于访问该ip地址 ，那就是 /etc/hosts 这个档案的用途了。
​  ]]></description><category></category></item><item><title><![CDATA[Sublime Text 3  格式化xml、php、html、js、css 插件安装配置]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106735610</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106735610</guid><author>xiaohaiguang</author><pubDate>Sat, 13 Jun 2020 19:02:42 +0800</pubDate><description><![CDATA[1.前言

使用Sublime编写代码时，我们都希望代码整洁漂亮，下面这三个插件个人感觉还是非常实用。另外这次安装插件都是通过package control在线安装。

2.安装格式化XML插件

 1.打开Sublime Text 3 ，按下快捷键ctrl+shift+p ,在弹出的显示框中输入install package（只要出现箭头所指选项就可以）

  如下图1所示

  

图 12.点击install package 选项，会自动加载资料库，稍等一会。加载完成后会自动跳出...]]></description><category></category></item><item><title><![CDATA[第一章  计算机系统概述（1）]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106530112</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106530112</guid><author>xiaohaiguang</author><pubDate>Fri, 05 Jun 2020 11:49:04 +0800</pubDate><description><![CDATA[1.1 操作系统的基本概念

提到操作系统，大多数人在用的包括Windows系统与安卓系统、iOS系统、以及在服务器领域占有优势的linux系统，操作系统本身是一个软件，只不过它能协调计算机的资源，包括硬件资源和软件资源。我们日常使用操作系统就是使用交互方式，通过鼠标的点击，来实现不同的功能。操作系统运行于硬件之上，而应用程序运行于操作系统之上。









1.1.1 操作系统的概念





1.1.2 操作系统的特征





1.1.3 操作系统的目标和功能






...]]></description><category></category></item><item><title><![CDATA[phpStudy  Apache 启动失败问题解决]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106541266</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/106541266</guid><author>xiaohaiguang</author><pubDate>Thu, 04 Jun 2020 11:31:12 +0800</pubDate><description><![CDATA[1.问题如图



2.考虑80端口占用

在右下角 其它选项菜单------&gt;phpStudy 设置----&gt;端口常规设置

修改端口为8088（只要不引起端口冲突就行），这里我是自己学习用，就改了端口号，这样在浏览器访问时要加上这个端口号，比如  localhost：8088



但是我在修改后还是无法启动，那就是还有别的错误 ，继续分析

3.运行httpd.exe



发现在配置文件中223行有语法错误，文件根目录有错误，打开配置文件

4.修改配置文件



考虑到可能是...]]></description><category></category></item><item><title><![CDATA[2.2 线性表的链式表示和实现（单链表）]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/105623350</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/105623350</guid><author>xiaohaiguang</author><pubDate>Fri, 24 Apr 2020 22:06:17 +0800</pubDate><description><![CDATA[一、前言

学习了线性表的顺序表示，我们知道顺序表示可以随机存取元素，意味着逻辑上相邻的两个元素在物理位置上也相连，但是我们可以看到插入和删除元素需要移动大量元素，而且还需要事先分配好一定量的空间。

二、链式表示介绍

链式存储结构意味着逻辑上相邻的元素在物理位置上不一定也相邻，在删除和插入元素时不需要移动大量元素，同时不支持随机存取，必须找到直接前驱和直接后继才能操作相应的元素。

对于单链表...]]></description><category></category></item><item><title><![CDATA[2.2.1线性表的链式表示中头指针和头结点的理解]]></title><link>https://blog.youkuaiyun.com/xiaohaiguang/article/details/105657135</link><guid>https://blog.youkuaiyun.com/xiaohaiguang/article/details/105657135</guid><author>xiaohaiguang</author><pubDate>Tue, 21 Apr 2020 18:46:33 +0800</pubDate><description><![CDATA[学习是一件快乐的事，先上个图片放松一下



一、前言

在学习链表时，会有头指针和头结点这两个概念，那么这二者的关系是什么？ 为什么要加头结点？ 加了头结点有哪些好处？ 这篇博客是我的一些个人理解，希望能对您有所帮助。

二、头指针和头结点

1.头指针

头指针唯一代表着一个链表（对于单链表来说），即这个指针是我们访问链表的入口。

2.头结点

头结点是在首元结点（正式存放数据的第一个...]]></description><category></category></item></channel></rss>