- 博客(16)
- 收藏
- 关注
原创 任意顺序的四个点获取矩形的中心点,长宽和角度
假设你得到了四个任意顺序的坐标,可以通过我编的程序获得该矩形的长宽,角度和中心点import cv2import mathclass 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
2021-01-13 15:45:05 6271 3
原创 mask图像获取物体标注框(仅限一张图片一个物体)
这是我自己写的程序,mask图像就是类似下面的图像,黑色部分为1,白色部分为255.使用下面程序可以获得物体的位置.import cv2# 判断第y行中是否存在物体def is_row_exist_object(image, y, xx): for x in range(0, xx): if image[y, x] > 128: return True return False# 判断第x列是否存在物体def is_
2021-01-13 15:30:41 782 1
原创 散列表C++实现
散列表散列表是一种查找技术,通俗一点说就是无需任何比较,直接通过关键码便能得到待查记录的存储位置。原理就必须在记录的存储位置和它的关键码之间建立一个确定的对应关系H,使得每个关键码key和惟一的一个存储位置H(key)相对应。在查找时,根据这个确定的对应关系找到给定值k的映射H(k),若查找集合中存在这个记录,则必定在H(k)的位置上。这里的关键码可以看成你要查找的东西,比如整数23存储在哈希表的数组中,那么关键码就是整数23也就是说我们仅需要这个关键码进行某种操作,就能得到它在哈希表数组内
2020-07-22 10:22:00 2718
原创 并查集C++实现
这篇比较简单,看看书就会了,需要注意的是这里使用静态数组实现的集合的,而且默认数组的下标即为存储的集合元素。UnionFindSet.h#pragma once#ifndef UNIONFINDSET_H#define UNIONFINDSET_H#include<iostream>using std::swap;using std::cout;using std::endl;//并查集类class UnionFindSet{public: UnionFindS
2020-07-20 22:14:32 284
原创 二叉排序树C++实现
二叉排序树定义二叉排序树又称二叉查找树,它或者是一棵空的二叉树,或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上所有结点的值均小于根结点的值;(2)若它的右子树不空,则右子树上所有结点的值均大于根结点的值;(3)它的左右子树也都是二叉排序树。树节点类定义//树节点类class TNode {public: int data; TNode* left, * right; TNode(int d) :left(nullptr), right(nullptr), d
2020-07-20 15:17:16 1963
原创 线性表查找
顺序表的顺序查找&&单链表的顺序查找//顺序表的顺序查找template<typename T>bool SeqSearch(T a[], int n, T target) { for (int i = 0; i < n; i++) { if (a[i] == target) return true; } return false;}//单链表的顺序查找template<typename T>class Node {pub
2020-07-20 14:48:21 583
原创 邻接矩阵构造图C++实现
邻接矩阵图类的定义template<typename T>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
2020-07-09 10:40:43 1777
原创 哈夫曼树C++实现
哈夫曼树给定一组具有确定权值的叶子结点,可以造出不同的二叉树,将其中带权路径长度最小的二叉树称为哈夫曼树(Huffman tree)。哈夫曼节点类哈夫曼节点会存储节点的权重以及,ch是节点对应的编码字符的下标,这里需要重载“<”,因为我们要使用最小优先级队列。//哈夫曼树节点类class hfTNode {public: int weight;//节点的权重 int ch;//存储节点的下标 hfTNode* leftchild, * rightchild;//创建该结点的
2020-07-06 22:58:24 6483 5
原创 最小堆C++实现
最小堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都小于其儿子结点的data域值,并且它是一个完全二叉树(不是满二叉树)。这里使用静态数组存储完全二叉树,对于完全二叉树采用顺序存储表示,那么对于任意一个下标为i(1 ≤ i ≤ n)的结点:父结点为:i / 2(i ≠ 1),若i = 1,则i是根节点。 左子结点:2i(2i ≤ n), 若不满足则无左子结点。 右子结点:2i + 1(2i + 1 ≤ n),若不满足则无右子结点。最小堆的定义:class Mi.
2020-07-03 22:07:42 3569 1
原创 二叉链表C++实现
二叉树节点类template<typename T>class BNode {//创建二叉树结点类public: T data;//存储数据 BNode<T>* leftchild, * rightchild;//创建该结点的左右孩子指针 BNode(T mydata = T())://二叉树结点类初始化 leftchild(nullptr), righ...
2020-04-10 10:00:10 1721
原创 循环队列C++实现
circularQueue.h#pragma once#pragma once#ifndef CIRCULARQUEUE_H#define CIRCULARQUEUE_H#include<iostream>#include<ostream>using std::cout;using std::cin;using std::endl;using st...
2020-01-12 16:16:34 309
原创 链栈C++实现
LinkStack.h#pragma once#ifndef LINKSTACK_H#define LINKSTACK_H#include<iostream>#include<ostream>using std::cout;using std::cin;using std::endl;using std::ostream;template<c...
2020-01-11 20:54:16 348
原创 C++顺序栈实现
模板类文件位置:声明和定义均要在头文件中进行,否则会出现链接错误,不可只在头文件声明,在cpp文件中定义环境VS2019模板类中的友元函数声明:在类内声明友元函数时,需要在上面加上 模板头 template<class T>,否则会报错,具体原因网址https://bbs.csdn.net/topics/120094418构造函数中使用return;不影响结果,貌似是这...
2020-01-11 15:44:57 268
原创 双向链表C++实现
DoubleLinkList.h#pragma once#ifndef DOUBLELINKLIST_H#define DOUBLELINKLIST_H//双向链表,下面英文名字写错了#include<iostream>using std::cout;using std::endl;using std::cin;typedef int ElemType;cla...
2020-01-07 14:26:22 209
原创 单链表C++实现
SingleLinkList.h#pragma once#ifndef SINGLELINKLIST_H#define SINGLELINKLIST_H//单链表#include<iostream>using std::cout;using std::endl;typedef int ElemType;class Node {public: ElemType...
2020-01-02 10:48:44 133
原创 顺序表C++实现
seqLinkList.h文件#ifndef SEQLINKLIST_H#define SEQLINKLIST_H//顺序链表#include<iostream>using std::cout;using std::endl;using std::cin;typedef int ElemType;constexpr auto MAXSIZE = 20;cl...
2020-01-02 10:45:00 158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人