<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[My_Algorithm的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/candand_python</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; candand_python]]></copyright><item><title><![CDATA[任意顺序的四个点获取矩形的中心点,长宽和角度]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/112569447</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/112569447</guid><author>candand_python</author><pubDate>Wed, 13 Jan 2021 15:45:05 +0800</pubDate><description><![CDATA[假设你得到了四个任意顺序的坐标,可以通过我编的程序获得该矩形的长宽,角度和中心点


import cv2
import math


class Point(object):  # 坐标类
    def __init__(self, xParam=0.0, yParam=0.0):
        self.x = xParam
        self.y = yParam

    def distance(self, pt):
        xDiff = self.x - pt.x
     ]]></description><category></category></item><item><title><![CDATA[mask图像获取物体标注框(仅限一张图片一个物体)]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/112567961</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/112567961</guid><author>candand_python</author><pubDate>Wed, 13 Jan 2021 15:30:41 +0800</pubDate><description><![CDATA[这是我自己写的程序,mask图像就是类似下面的图像,黑色部分为1,白色部分为255.



使用下面程序可以获得物体的位置.


import cv2


# 判断第y行中是否存在物体
def is_row_exist_object(image, y, xx):
    for x in range(0, xx):
        if image[y, x] &gt; 128:
            return True
    return False


# 判断第x列是否存在物体
def is_]]></description><category></category></item><item><title><![CDATA[散列表C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/107505740</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/107505740</guid><author>candand_python</author><pubDate>Wed, 22 Jul 2020 10:22:00 +0800</pubDate><description><![CDATA[散列表

散列表是一种查找技术，通俗一点说就是无需任何比较，直接通过关键码便能得到待查记录的存储位置。原理就必须在记录的存储位置和它的关键码之间建立一个确定的对应关系H，使得每个关键码key和惟一的一个存储位置H（key）相对应。在查找时，根据这个确定的对应关系找到给定值k的映射H（k），若查找集合中存在这个记录，则必定在H（k）的位置上。


这里的关键码可以看成你要查找的东西，比如整数23存储在哈希表的数组中，那么关键码就是整数23


也就是说我们仅需要这个关键码进行某种操作，就能得到它在哈希表数组内]]></description><category></category></item><item><title><![CDATA[并查集C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/107475567</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/107475567</guid><author>candand_python</author><pubDate>Mon, 20 Jul 2020 22:14:32 +0800</pubDate><description><![CDATA[这篇比较简单，看看书就会了，需要注意的是这里使用静态数组实现的集合的，而且默认数组的下标即为存储的集合元素。

UnionFindSet.h


#pragma once
#ifndef UNIONFINDSET_H
#define UNIONFINDSET_H
#include&lt;iostream&gt;
using std::swap;
using std::cout;
using std::endl;

//并查集类
class UnionFindSet
{
public:
	UnionFindS]]></description><category></category></item><item><title><![CDATA[二叉排序树C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/107463494</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/107463494</guid><author>candand_python</author><pubDate>Mon, 20 Jul 2020 15:17:16 +0800</pubDate><description><![CDATA[二叉排序树定义

二叉排序树又称二叉查找树，它或者是一棵空的二叉树，或者是具有下列性质的二叉树：
（1）若它的左子树不空，则左子树上所有结点的值均小于根结点的值；

（2）若它的右子树不空，则右子树上所有结点的值均大于根结点的值；

（3）它的左右子树也都是二叉排序树。

树节点类定义


//树节点类
class TNode {
public:
	int data;
	TNode* left, * right;
	TNode(int d) :left(nullptr), right(nullptr), d]]></description><category></category></item><item><title><![CDATA[线性表查找]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/107463230</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/107463230</guid><author>candand_python</author><pubDate>Mon, 20 Jul 2020 14:48:21 +0800</pubDate><description><![CDATA[顺序表的顺序查找&amp;&amp;单链表的顺序查找


//顺序表的顺序查找
template&lt;typename T&gt;
bool SeqSearch(T a[], int n, T target) {
	for (int i = 0; i &lt; n; i++)
	{
		if (a[i] == target)
			return true;
	}
	return false;
}

//单链表的顺序查找
template&lt;typename T&gt;
class Node {
pub]]></description><category></category></item><item><title><![CDATA[邻接矩阵构造图C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/107222033</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/107222033</guid><author>candand_python</author><pubDate>Thu, 09 Jul 2020 10:40:43 +0800</pubDate><description><![CDATA[邻接矩阵



图类的定义


template&lt;typename T&gt;
class MyGraph {
public:
	MyGraph(T a[], int b[][2], int n, int e);//构造函数，初始化具有n个顶点e条边的图，b是一个e×2的二维数组，存储了边的坐标信息
	~MyGraph() { }//析构函数
	T GetVex(int i);//取图中第i个顶点数据信息
	void PutVex(int i, T value);//将图中第i个顶点的数据域置为val]]></description><category></category></item><item><title><![CDATA[哈夫曼树C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/107169877</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/107169877</guid><author>candand_python</author><pubDate>Mon, 06 Jul 2020 22:58:24 +0800</pubDate><description><![CDATA[哈夫曼树

给定一组具有确定权值的叶子结点，可以造出不同的二叉树，将其中带权路径长度最小的二叉树称为哈夫曼树（Huffman tree）。

哈夫曼节点类

哈夫曼节点会存储节点的权重以及，ch是节点对应的编码字符的下标，这里需要重载“&lt;”,因为我们要使用最小优先级队列。


//哈夫曼树节点类
class hfTNode {
public:
	int weight;//节点的权重
	int ch;//存储节点的下标
	hfTNode* leftchild, * rightchild;//创建该结点的]]></description><category></category></item><item><title><![CDATA[最小堆C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/107115918</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/107115918</guid><author>candand_python</author><pubDate>Fri, 03 Jul 2020 22:07:42 +0800</pubDate><description><![CDATA[最小堆是指在树中，存在一个结点而且该结点有儿子结点，该结点的data域值都小于其儿子结点的data域值，并且它是一个完全二叉树（不是满二叉树）。

这里使用静态数组存储完全二叉树，对于完全二叉树采用顺序存储表示，那么对于任意一个下标为i(1 ≤ i ≤ n)的结点：

父结点为：i / 2（i ≠ 1），若i = 1，则i是根节点。
	左子结点：2i（2i ≤ n）， 若不满足则无左子结点。
	右子结点：2i + 1(2i + 1 ≤ n)，若不满足则无右子结点。


最小堆的定义：


class Mi.]]></description><category></category></item><item><title><![CDATA[二叉链表C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/105426256</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/105426256</guid><author>candand_python</author><pubDate>Fri, 10 Apr 2020 10:00:10 +0800</pubDate><description><![CDATA[二叉树节点类


template&lt;typename T&gt;
class BNode {//创建二叉树结点类
public:
	T data;//存储数据
	BNode&lt;T&gt;* leftchild, * rightchild;//创建该结点的左右孩子指针
	BNode(T mydata = T())://二叉树结点类初始化
		leftchild(nullptr), righ...]]></description><category></category></item><item><title><![CDATA[循环队列C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/103946835</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/103946835</guid><author>candand_python</author><pubDate>Sun, 12 Jan 2020 16:16:34 +0800</pubDate><description><![CDATA[circularQueue.h


#pragma once
#pragma once
#ifndef CIRCULARQUEUE_H
#define CIRCULARQUEUE_H

#include&lt;iostream&gt;
#include&lt;ostream&gt;
using std::cout;
using std::cin;
using std::endl;
using st...]]></description><category></category></item><item><title><![CDATA[链栈C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/103940508</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/103940508</guid><author>candand_python</author><pubDate>Sat, 11 Jan 2020 20:54:16 +0800</pubDate><description><![CDATA[LinkStack.h


#pragma once
#ifndef LINKSTACK_H
#define LINKSTACK_H

#include&lt;iostream&gt;
#include&lt;ostream&gt;
using std::cout;
using std::cin;
using std::endl;
using std::ostream;
template&lt;c...]]></description><category></category></item><item><title><![CDATA[C++顺序栈实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/103937247</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/103937247</guid><author>candand_python</author><pubDate>Sat, 11 Jan 2020 15:44:57 +0800</pubDate><description><![CDATA[模板类文件位置:声明和定义均要在头文件中进行，否则会出现链接错误，不可只在头文件声明，在cpp文件中定义

环境VS2019

模板类中的友元函数声明：在类内声明友元函数时，需要在上面加上 模板头 template&lt;class T&gt;，否则会报错，具体原因网址

https://bbs.youkuaiyun.com/topics/120094418

构造函数中使用return；不影响结果，貌似是这...]]></description><category></category></item><item><title><![CDATA[双向链表C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/103873849</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/103873849</guid><author>candand_python</author><pubDate>Tue, 07 Jan 2020 14:26:22 +0800</pubDate><description><![CDATA[DoubleLinkList.h


#pragma once
#ifndef DOUBLELINKLIST_H
#define DOUBLELINKLIST_H
//双向链表，下面英文名字写错了
#include&lt;iostream&gt;
using std::cout;
using std::endl;
using std::cin;
typedef int ElemType;

cla...]]></description><category></category></item><item><title><![CDATA[单链表C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/103800527</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/103800527</guid><author>candand_python</author><pubDate>Thu, 02 Jan 2020 10:48:44 +0800</pubDate><description><![CDATA[SingleLinkList.h


#pragma once
#ifndef SINGLELINKLIST_H
#define SINGLELINKLIST_H
//单链表
#include&lt;iostream&gt;
using std::cout;
using std::endl;
typedef int ElemType;

class Node {
public:
	ElemType...]]></description><category></category></item><item><title><![CDATA[顺序表C++实现]]></title><link>https://blog.youkuaiyun.com/candand_python/article/details/103800430</link><guid>https://blog.youkuaiyun.com/candand_python/article/details/103800430</guid><author>candand_python</author><pubDate>Thu, 02 Jan 2020 10:45:00 +0800</pubDate><description><![CDATA[seqLinkList

.h文件


#ifndef SEQLINKLIST_H
#define SEQLINKLIST_H
//顺序链表
#include&lt;iostream&gt;
using std::cout;
using std::endl;
using std::cin;
typedef int ElemType;
constexpr auto MAXSIZE = 20;

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