C++
学习之路
Xn.er
你可以放弃,但坚持下来一定很酷。
展开
-
什么是AVL树?AVL树的插入,旋转及验证(代码实现)
前文说到了二叉搜索树一般情况下有很高的查找效率,平均时间复杂度为O(logN),N为树中的全部节点数。但是二叉搜索树也有缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退化成O(N),这就很不稳定了。那么有没有更好的二叉搜索树呢? 一、什么是AVL树 两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发表了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行原创 2020-07-03 08:55:15 · 295 阅读 · 0 评论 -
什么是二叉搜索树?二叉搜索树的查找、插入、删除实现
一、什么是二叉搜索树 二叉搜索树(Binary Search Tree)又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: (1)若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 (2)若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 (3)它的左右子树也分别为二叉搜索树 二叉搜索树拥有很高的查找效率,树中最左节点为最小元素,最右节点为最大元素 二、二叉搜索树的实现(查找、插入、删除) 代码如下: #include<iostream> using namespac原创 2020-07-02 01:09:37 · 257 阅读 · 0 评论 -
不会有人真的不看这个完整的string类实现,不会吧
模拟实现一个string类,功能与STL标准库中的string类似 。 基本函数实现: 构造函数、拷贝构造函数、operator赋值函数、析构函数 namespace Xner { class string { public: string(const char* str = "") { _str = new char[strlen(str) + 1]; strcpy(_str, str); _size = strlen(str); _capacity = _size;原创 2020-05-26 21:42:23 · 260 阅读 · 2 评论 -
C++实现一个日期类,可以完成日期赋值,日期比较,基本的日期计算
实现一个日期类, 可以完成日期赋值, 日期比较, 日期+天数, 日期-天数, 日期-日期等计算 代码如下: #include<iostream> using namespace std; class Date { public: // 获取某月的天数 int GetMonthDay(int year, int month) { int monthDays[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; //原创 2020-05-17 20:23:52 · 1067 阅读 · 0 评论