<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[herui7322的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/herui7322</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; herui7322]]></copyright><item><title><![CDATA[数据处理方法——排序技术（分配排序待补充）]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104482747</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104482747</guid><author>herui7322</author><pubDate>Wed, 26 Feb 2020 20:29:13 +0800</pubDate><description><![CDATA[排序中相关问题说明：

排序的分类
在内排序中，主要进行两种操作：比较和移动。比较指关键字之间的比较，这是要做排序最起码的操作。移动指记录从一个位置移动到另一个位置。排序算法的方法有很多，如果按照排序过程中依据的主要操作来进行分类，可以分为插入排序、交换排序、选择排序、归并排序和分配排序五大类；而如果按照算法的复杂度来进行分类的话，可以分为三类：

简单的排序算法  O(n^2)；
先进的排序算法...]]></description><category></category></item><item><title><![CDATA[活动顶点与活动边的问题07]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104457266</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104457266</guid><author>herui7322</author><pubDate>Mon, 24 Feb 2020 14:05:54 +0800</pubDate><description><![CDATA[图的活动顶点排序问题的引入
一般的复杂工程都可以划分为多个工序/步骤/子工程，这些工序有的可独立进行，但大多数和其他工序关联，即某工序的进行，要等到其他一些工序的完成才能开始。只有按一定的顺序完成了这些工序，才能正确完成整个工程。下面来看一些实际的例子。

装配顺序问题

Brown 教授早晨起床，他必须先穿好某些衣服，才能再穿其他衣服（如先穿袜子后穿鞋），其他一些衣服则可以按任意次序穿戴（如袜子...]]></description><category></category></item><item><title><![CDATA[最短路径问题06]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104442460</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104442460</guid><author>herui7322</author><pubDate>Sat, 22 Feb 2020 21:50:31 +0800</pubDate><description><![CDATA[最短路径问题是图论研究中的一个经典问题， 旨在寻找图中两结点之间的最短路径，即从某顶点出发，沿图的边到达另一顶点所经过的路径中，各边上权值之和最小的一条路径——最短路径。
最短路径计算根据原点的数量，可以分为单源点最短路径和全源最短路径。单源点的最短路径问题，是在带权有向图中，求指定的一个顶点到其余各点的最短路径；全源最短路径是在有向或无向带权图中，求出所有顶点对之间的最短路径。

求单源点最短路...]]></description><category></category></item><item><title><![CDATA[图的经典应用——最小生成树（MST，Minimum-cost Spanning Tree）05]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104394014</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104394014</guid><author>herui7322</author><pubDate>Fri, 21 Feb 2020 21:09:13 +0800</pubDate><description><![CDATA[引例1——架设通信网络的最小成本问题
引例2——网络中信息传输的问题
用于网桥(交换机) 设备的 STP （Spanning Tree Protocol）协议
生成树实例

生成树是连通图的极小连通子图。所谓极小是指若在树中任意增加一条边，则将出现一个回路；若去掉一条边，将会使之变成非连通图。
生成树没有确定的根，通常称之为自由树。在自由树中选定一顶点做根，则成为一棵通常的树。从根开始，为每个顶点...]]></description><category></category></item><item><title><![CDATA[图的顶点查找问题——图的遍历04]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104376424</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104376424</guid><author>herui7322</author><pubDate>Wed, 19 Feb 2020 14:23:43 +0800</pubDate><description><![CDATA[图的广度优先遍历 BFS
广度优先搜索算法，又称广度优先搜索算法，是连通图的一种遍历策略，也是最简单的图的搜索算法之一。Dijksta 单源最短路径算法和 Prim 最小生成树算法都采用了与宽度优先搜索类似的思想。
基本思想

伪代码描述
（1）顶点v入队列。
（2）当队列非空时则继续执行，否则算法结束。
（3）出队列取得队头顶点v；访问顶点v并标记顶点v已被访问。
（4）查找顶点v的第一个邻接顶...]]></description><category></category></item><item><title><![CDATA[图的基本操作03]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104358860</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104358860</guid><author>herui7322</author><pubDate>Mon, 17 Feb 2020 20:05:34 +0800</pubDate><description><![CDATA[邻接矩阵的操作

#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#define VERTEX_NUM 64
typedef struct
{   char  VertexArray[VERTEX_NUM];  //顶点数组
    int   AdjMatrix[VERTEX_NUM][ VERTEX_NUM];  //邻接矩阵
    int...]]></description><category></category></item><item><title><![CDATA[图的存储结构及实现02]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104328252</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104328252</guid><author>herui7322</author><pubDate>Sat, 15 Feb 2020 21:31:24 +0800</pubDate><description><![CDATA[常用的图的存储结构有邻接矩阵、邻接表、十字链表和邻接多重表。


图的数组表示法——邻接矩阵

图的逻辑结构分为顶点集合和边的集合两部分，一个顶点是一个元素，因此可以用一个一维数组存放顶点数据；一条边是用其关联的两个顶点表示的，即一个边元素有两个数据域，因此可以用一个矩阵存放顶点间的邻接关系（即边或弧），这个二维数组也被称为邻接矩阵。如果两个顶点是关联的，那么矩阵的值可以记为1，否则记为0。

邻...]]></description><category></category></item><item><title><![CDATA[结点逻辑关系任意的非线性结构——图01]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104326618</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104326618</guid><author>herui7322</author><pubDate>Sat, 15 Feb 2020 14:43:58 +0800</pubDate><description><![CDATA[图的逻辑结构
对于图中结点与结点间“多对多”的关系，采用集合的方式描述。

图的定义和基本术语

图的定义

图的表示形式
图的表示可以用文字符号表述，也可以用图形描述，有下面两种形式：
1）集合表示：对于一个图G，如果将其记为G = &lt;V, E&gt;，并写出V和E的集合表示，称为图的集合表示。
2）图形表示：用小圆圈表示V中的结点，用由u指向v的有向线段表示有向边&lt;u, v&gt;...]]></description><category></category></item><item><title><![CDATA[分层次的非线性结构——树（广义表）05]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104307577</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104307577</guid><author>herui7322</author><pubDate>Fri, 14 Feb 2020 16:51:48 +0800</pubDate><description><![CDATA[包含子结构的线性结构，线性表的推广——广义表

广义表的定义


广义表定义

约定：为了区分原子和子表，书写时用大写字母表示子表，用小写字母表示原子。


广义表特性



广义表表示方法




用圆圈和方框分别表示表和单元素，并用线段把表和它的元素（元素结点应在其表结点的下方）连接起来。树根结点代表整个广义表，各层树枝结点代表相应的子表，树叶结点代表单元素或空表。


广义表与其他数据结构的...]]></description><category></category></item><item><title><![CDATA[分层次的非线性结构——树05]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104277400</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104277400</guid><author>herui7322</author><pubDate>Thu, 13 Feb 2020 19:11:02 +0800</pubDate><description><![CDATA[线索二叉树
二叉链表线索化的实现
【方案一】增加前趋后继指针域
可以增加二叉链表结点中的指针域来存放前趋和后继结点信息，其中Lthread表示前趋结点的地址，Rthread表示后继结点的地址。


对树的先序遍历而言，结点的孩子与后继的关系是：任一结点的后继是其左孩子；若左孩子为空，则为右孩子；若右孩子也为空，则为后继。
考虑到先序遍历中，结点的孩子与后继是一样的，因此只用一个孩子结点的指针域即可...]]></description><category></category></item><item><title><![CDATA[分层次的非线性结构——树（查找问题）04]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104216054</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104216054</guid><author>herui7322</author><pubDate>Sun, 09 Feb 2020 21:17:33 +0800</pubDate><description><![CDATA[树的遍历

广度优先遍历（Breadth-First Search）
1.基于顺序存储结构的树的广度优先遍历

2.基于链式存储结构的二叉树广度优先遍历
从根结点开始访问，然后以这个结点为线索，顺序访问与之直接相连的结点（孩子）序列，以此序列为线索，重复操作，直至所有结点访问完毕。

算法描述：
(1)初始化一个队列，并把根结点入列队；
(2)队列元素出队，取得一个结点，访问该结点；
(3)若该结...]]></description><category></category></item><item><title><![CDATA[分层次的非线性结构——树 03]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104174159</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104174159</guid><author>herui7322</author><pubDate>Fri, 07 Feb 2020 20:42:55 +0800</pubDate><description><![CDATA[二叉树的存储结构及实现
1.二叉树的顺序结构
用一组连续的内存单元，按编号顺序依次存储完全二叉树的结点。
1）结点间关系分析：因为已知一个结点的编号，那么其相关的编号都能推算出来，因此，只存储结点编号即可；
2）结点位置分析：因为结点编号的连续性，因此可以用它做存储向量的下标。由于C语言规定数组下标必须从 0 开始，不用此单元，而让根结点存储在下标为 1 的位置，这样树的编号与下标位置就一一对应起...]]></description><category></category></item><item><title><![CDATA[分层次的非线性结构——树（二叉树的逻辑结构）02]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104169201</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104169201</guid><author>herui7322</author><pubDate>Tue, 04 Feb 2020 18:49:13 +0800</pubDate><description><![CDATA[二叉树的逻辑结构
二叉树在采用链式存储方式时是一种存储效率较高的结构，也是一种最简单的树的形式，因此重点讨论二叉树的特性、存储及运算。
问题：如何实现树与二叉树的转换？

1. 树转换为二叉树
转换过程：
加线：在所有相邻兄弟结点之间加一条连线。
去线：对每个非终端结点，除了其最左孩子以外，删去该结点与其他孩子结点的连线。
旋转：以根结点为轴心，向右旋转 45°。
调整：整理成二叉树。

树转换为...]]></description><category></category></item><item><title><![CDATA[分层次的非线性结构——树01]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104156808</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104156808</guid><author>herui7322</author><pubDate>Mon, 03 Feb 2020 21:45:03 +0800</pubDate><description><![CDATA[树的示意图

树的图形表示方法




树的存储结构：
树形结构的存储，依然遵循存储的两大原则：
“存数值、存联系” 和 “存得进，取得出”。
由于树是非线性结构，结点间联系的存储，要比线性关系复杂得多，因此它成为存储树形结构问题的关键与重点。

1）树的连续存储方式

树连续存储1——双亲孩子表示法

按照 “存数值，存联系” 的原则，用数组存储树中结点值，对应有下标，即结点的编号，则每个结点...]]></description><category></category></item><item><title><![CDATA[多维数组与字符串02]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104119705</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104119705</guid><author>herui7322</author><pubDate>Sun, 02 Feb 2020 16:52:43 +0800</pubDate><description><![CDATA[字符串的查找——模式匹配
模式匹配（Pattern Matching）：
子串（模式串）在主串（目标串）中的定位运算。

1.BF 算法

]]></description><category></category></item><item><title><![CDATA[内容特殊的线性表——多维数组与字符串01]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104105786</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104105786</guid><author>herui7322</author><pubDate>Thu, 30 Jan 2020 20:55:40 +0800</pubDate><description><![CDATA[数据结构如线性表、栈和队列等，均是线性结构，其中的数据元素是非结构的原子类型。本章要讨论的数组，可以看成是线性表的扩展，即表中的元素本身也是一种数据结构。
本章简单讨论数组的逻辑结构及其存储方式。
1.多维数组
从数据结构的角度看，数组是 n（n&gt;=0）个相同数据类型数据元素构成的有限序列，数组可以看成是一种特殊的线性表，是线性表的推广。
数组的概念
【数组定义】
数组（Array）是由类型...]]></description><category></category></item><item><title><![CDATA[数据结构——链和队列04]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104089713</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104089713</guid><author>herui7322</author><pubDate>Tue, 28 Jan 2020 16:02:00 +0800</pubDate><description><![CDATA[杨辉三角的链队列解法

遇到个问题，结果不能输出；
检查代码似乎没错，不会debug，简单调试对变量添加查看，用的编译器是DEV C++；
之前还遇到个问题，if else语句中，即使只有一句语句，仍然需要加“{}”，否则报错，大致是else没有if 与之匹配。
#include&lt;stdio.h&gt;
#include"Unit3_8.cpp"
#define N 15

int mai...]]></description><category></category></item><item><title><![CDATA[数据结构——栈和队列03]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104083427</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104083427</guid><author>herui7322</author><pubDate>Sat, 25 Jan 2020 22:55:00 +0800</pubDate><description><![CDATA[顺序队列的基本操作
前面介绍用两个指针表示队列状态，为区别队空与队满状态，让front指针向前移动一个位置。
顺序结构定义：
typedef strct
{
	datatype data[QUEUE_SIZE];
	int front, rear;
}SeqQueue;

1.置空栈
按队空初始化条件 front = rear =QUEUE_SIZE-1 设置头尾指针。
程序实现：
/*=====...]]></description><category></category></item><item><title><![CDATA[数据结构——栈和队列  02（杨辉三角队列解法）]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104079715</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104079715</guid><author>herui7322</author><pubDate>Sat, 25 Jan 2020 14:36:38 +0800</pubDate><description><![CDATA[队列处理模式：
整个数据处理过程模型即是一个队列的形式。
杨辉三角的队列解法，编程输出几行杨辉三角形；
【】杨辉三角是由二项式（a+b）的 n 次方（n=1,2,3…）展开后各项的系数排成的三角形，它的特点是左右两边全是1，从第二行起，中间的每一个数是上一行里相邻两个数之和。
算法描述：
在每行之间插入一个0作为行的分隔标记，形成的系数序列存在数组queue[]中。

设 front 指向要求和的...]]></description><category></category></item><item><title><![CDATA[数据结构——栈和队列  01]]></title><link>https://blog.youkuaiyun.com/herui7322/article/details/104060800</link><guid>https://blog.youkuaiyun.com/herui7322/article/details/104060800</guid><author>herui7322</author><pubDate>Thu, 23 Jan 2020 21:30:28 +0800</pubDate><description><![CDATA[顺序栈存在栈满以后就不能再进栈的问题，这是因为用了定长的数组存储栈的元素。解决的方法，可以使用链式存储结构，让栈空间可以动态扩充。
2.链栈的基本操作
关于链表和链栈：都是采用离散的方式存储，存储元素分别为线性表元素和栈元素。

...]]></description><category></category></item></channel></rss>