C++
文章平均质量分 86
sindyra
这个作者很懒,什么都没留下…
展开
-
C语言、C++操作符优先级
C语言,C++运算符优先级原创 2023-10-22 01:23:58 · 251 阅读 · 0 评论 -
二叉树的构建(C++)
原博客:https://blog.csdn.net/libingbojava/article/details/81080036包含前中后序遍历,这里我只写了构建,方便查看定义二叉树的结构:typedef struct BiTNode{ char data; struct BiTNode *lchild , *rchild; //左右孩子指针 } BiTNode , *B...转载 2019-12-20 15:49:04 · 5152 阅读 · 0 评论 -
C++Virtual关键字用法
1、虚函数使用虚函数 + 继承 + 基类指针 来实现多态2、虚析构 如果一个类用作基类,我们通常需要virtual来修饰它的析构函数,这点很重要。如果基类的析构函数不是虚析构,当我们用delete来释放基类指针(它其实指向的是派生类的对象实例)占用的内存的时候,只有基类的析构函数被调用,而派生类的析构函数不会被调用,这就可能引起内存泄露。如果基类的析构函数是虚析构,那么在del...原创 2020-02-10 12:45:18 · 420 阅读 · 0 评论 -
A*算法笔记
我们平常所见的深度优先和广度优先搜索算法都是直接搜索算法,这种是盲目式的搜索,直到搜索时遇到终点,或者搜索整个地图结束。而A*算法则是启发式搜索,这种搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标,它是通过启发函数引导算法的搜索方向。A*算法路径代价值计算:F = G + H; (启发函数)F:从起点经过当前点到到终点的代价值;G:从起点到...原创 2020-01-08 16:26:58 · 526 阅读 · 0 评论 -
C++类 二叉排序树删除节点
BinaryTreeNode: 节点类BinaryTree:二叉排序树类//删除一个节点自身template<typename T>BinaryTreeNode<T>* BinaryTreeNode<T>::RemoveSelf() { //分三种情况 //第一种情况:要删除的是叶子节点,改变父节点的指向,删除该节点 if (nul...原创 2020-01-07 16:21:55 · 1144 阅读 · 0 评论 -
String类完整代码实现
转载自:https://blog.csdn.net/tianzez/article/details/79636250class String {public: String(const char *str = ""); // 默认构造函数 String(const String& copy); // 拷贝构...转载 2019-12-30 16:11:51 · 504 阅读 · 0 评论 -
C++四大默认成员函数详解
版权声明:本文为CSDN博主「Tianzez」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/tianzez/article/details/79636250一篇解释的很详细的博客,转载方便查看...转载 2019-12-30 15:59:20 · 240 阅读 · 0 评论 -
C++ Typedef 与 宏定义Define的区别?
转自:https://blog.csdn.net/xing1314/article/details/23362691.执行时间不同关键字typedef在编译阶段有效,由于是在编译阶段,因此typedef有类型检查的功能。Define则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单的字符串替换,而不进行任何检查。#define用法例子:#define f(x) x*xma...转载 2019-12-23 19:44:43 · 310 阅读 · 0 评论 -
快速排序(C++和C#实现)
三、快速排序(O(nlogn)、不稳定) 快速排序简称快排,是一种比较快的排序,适合基本无序的数据,为什么这么说呢?下面我说下快排的思路:思路一:设置两个指针:i和j,分别指向第一个和最后一个,i像后移动,j向前移动。选第一个数为标准(一般这样做,当然快排的关键就是这个“标准”的选取),从后面位置j开始,找到第一个比标准小的数,替换i所在的位置的数,然后i指向i后一个元素,再从位置i开始...原创 2019-12-18 16:55:06 · 352 阅读 · 1 评论 -
选择排序(C++实现)
二、选择排序(O(n^2)、不稳定) 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置(或末尾位置),直到全部待排序的数据元素排完。选择排序不稳定的原因: 选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的, 依次类推,直到第n-1个元素,第n个 元素不用选择了,因为只剩下...原创 2019-12-18 14:59:28 · 5390 阅读 · 0 评论 -
冒泡排序(C++实现)
二、冒泡排序(稳定、基本有序可达O(n),最坏情况为O(n^2)) 冒泡排序:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序不对就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到...原创 2019-12-18 14:51:32 · 539 阅读 · 0 评论 -
插入排序(C++实现)
一、直接插入排序(内部排序、O(n^2)、稳定) 原理:从待排序的数中选出一个来,插入到前面的合适位置。 基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。插入排序(从小到大)一种容易理解...原创 2019-12-18 14:38:26 · 2280 阅读 · 0 评论 -
单链表的反转
一、首先我定义了这样一个单向链表:struct ListNode{ int m_nKey;//数据域 ListNode* m_pNext;//指针域};并且创建了一个名为list的链表,共有10个节点,节点数据域为1~10//创建一个节点值为1~n的链表ListNode* CreateList(int begin,int end) { //创建一个链表 ListNo...原创 2019-10-13 12:03:30 · 258 阅读 · 0 评论 -
深度优先搜索(DFS)遍历图找到出口
最近重新复习了一遍DFS,做下笔记代码运行效果图:代码:#include <iostream>using namespace std;#include <list>#include <stack>#include <Windows.h>int map[10][10]={ 1, 1, 1, 1, 1, 1, 1, 1, ...原创 2019-09-17 11:35:16 · 425 阅读 · 0 评论 -
求高精度幂(南阳OJ155题)
求高精度幂时间限制:3000 ms | 内存限制:65535 KB难度:2描述对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。现在要你解决的问题是:对一个实数R( 0.0< R < 99.999 ),要求写程序精确计算 R的 n 次方(Rn),其中n是整数并且 0 < =n<= 25。输入输入有...原创 2017-08-10 21:32:41 · 916 阅读 · 0 评论 -
算法题:搜索二维矩阵 II
搜索二维矩阵 II编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10...原创 2019-08-10 17:22:35 · 213 阅读 · 0 评论 -
算法题:求众数
求众数给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2解题思路:题目要求众数的个数一定是要大于整个数组的1/2的,所以众数的数量只有一个,利用摩尔投票法,遇到...原创 2019-08-10 17:15:21 · 2207 阅读 · 0 评论 -
算法题:鸡蛋掉落(leetcode 887题)
题目:鸡蛋掉落你将获得K个鸡蛋,并可以使用一栋从1到N共有N层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层F,满足0 <= F <= N任何从高于F的楼层落下的鸡蛋都会碎,从F楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层X扔下(满...原创 2019-08-17 21:21:57 · 1553 阅读 · 0 评论 -
C++中static关键字的用法总结:
C++中static关键字的用法总结:1. 全局静态变量:在全局变量前加上关键字static,全局变量就定义成一个全局静态变量,这改变了它的作用域(未加static前缀的全局变量和函数默认省略extern,都具有全局可见性)。存储及生命周期:在静态存储区,整个程序运行期间一直存在。初始化:未经初始化的全局静态变量是会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化)作...原创 2019-08-09 10:26:12 · 589 阅读 · 0 评论