Mr 羊
码龄7年
关注
提问 私信
  • 博客:7,858
    社区:69
    7,927
    总访问量
  • 11
    原创
  • 1,038,646
    排名
  • 4
    粉丝
  • 0
    铁粉

个人简介:热爱驱动技术,分享带来升华

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2018-01-31
博客简介:

Mr 羊的博客

博客描述:
热爱驱动进步,分享得到升华
查看详细资料
个人成就
  • 获得17次点赞
  • 内容获得1次评论
  • 获得14次收藏
创作历程
  • 12篇
    2020年
成就勋章
TA的专栏
  • 笔记
    1篇
兴趣领域 设置
  • 大数据
    mysql
  • 后端
    spring架构
  • 服务器
    linux
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

红黑树快速理解

认识红黑树我觉得认识红黑树的第一步要从为什么发明并使用它开始。学习数据结构这门课的同学,如果用的是严蔚敏老师的经典教材的话,其中是没有对红黑树进行讲解的,但一定学过二叉搜索树和AVL树(平衡二叉树)。其中二叉搜索树解决的是查找问题,好的情况下的时间复杂度能达到O(logn),但也存在坏的情况,最坏的情况就是此树极度不平衡,此时便退化成一条链表,时间复杂度为O(n)。我们当然不希望这种最坏的情况发生,所以我们引入AVL树,但AVL树的条件太过严格和理想。由此,红黑树便登上了舞台,它既能解决二叉搜索树不平衡
原创
发布博客 2020.06.29 ·
880 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

优雅的设计之局部资源管理

局部资源管理(what)在c++的设计中,对于资源的管理是非常重要的,一旦管理不好就会容易导致内存泄漏,从而出现严重的问题,c++之父引入了资源管理的手法,名叫RAII,它是“Resource Acquisition Is Initialization”的首字母缩写。也称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。资源的获取代码在构造函数中写,资源的释放在析构函数中写。为什么这样设计(why)我们都知道,c++
原创
发布博客 2020.05.12 ·
257 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

java和c++之堆栈的故事

故事简介c++是个向往自由的boy,他对堆栈的态度是:自由灵活。java认为生而为编程语言,就应该受到一定的约束才能更快活。于是他们与堆栈便开始了扯不开的羁绊。好了好了,引子介绍完了,开始正文。创建对象c++它创建对象可以在堆上创建也可以在栈上创建,java则所有的对象都在堆上创建。c++的对象的创建c++创建对象有两种方式,一种是动态在堆上创建:object *o = new ob...
原创
发布博客 2020.04.23 ·
180 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

ubuntu安装redis以及五种数据结构的基本操作介绍

ubuntu安装redis直接用命令安装即可。sudo apt-get install redis-server启动服务redis-server出现上图之后说明redis安装成功且服务启动了。之后可以根据需要修改配置文件完成配置。键入以下命令便进入redis命令行客户端redis-cli五种数据结构的操作说明我会在命令行客户端演示说明。string字符串的三个基本...
原创
发布博客 2020.04.16 ·
749 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

造轮子之实现一个栈类(c++)

造轮子之实现一个栈类栈:先进后出的数据结构,在实际开发过程中运用普遍,在这里就简单的实现一个字符串类型的栈类。先写一个Stack的头文件 Stack.h,在头文件中声明了必需的成员函数。#include<vector>#include<string>using namespace std;class Stack{ public: bool push(con...
原创
发布博客 2020.04.11 ·
270 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

sizeof和strlen区分与详细解读

sizeof与strlen本质区别sizeof是c/c++中一个关键字,可以认为是一种运算符,而strlen则是库函数,首先理解本质,接下来的区别就很好理解了。sizeof和strlen的用法sizeof由于本质是关键字、运算符,他的操作都是在编译阶段执行的,所以sizeof不能用来返回动态分配的内存空间大小和指针指向的内存空间大小。strlen()是计算字符串的长度的函数,直到遇到结束符...
原创
发布博客 2020.03.25 ·
243 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

GDB基本操作和TUI模式

GDB的基本操作GDB是一款功能很强大的程序调试工具,当然不同于图像化界面的调试工具,你需要掌握一定的命令才进行操作。在linux下开发,GDB可谓是非常重要。#常用的基本命令GDB最长用的是设置程序断点,在断点处查看相关变量的值,单步运行,查看堆栈等信息了。命令作用run运行程序list显示代码start开始执行程序,在main第一条语句前停下...
原创
发布博客 2020.03.18 ·
597 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

二叉树递归和非递归遍历的C语言的实现

二叉树递归和非递归遍历的C语言的实现#递归实现这个在逻辑和实现上都很简单,但是执行速度并不如非递归快,原因是递归必定反复进行函数调用,函数调用过程是比较慢的。void CreateBitree(BiTree &t){ //先序建立二叉树 int in; scanf("%d",&in); if(in==0) t=NULL; else{ t=(BiTre...
原创
发布博客 2020.03.16 ·
339 阅读 ·
3 点赞 ·
0 评论 ·
2 收藏

冒泡排序和简单排序C语言实现和比较

冒泡排序冒泡排序属于交换排序的一种,算法如其名,它通过两两比较相邻关键字,如有逆序则交换,不断使关键字小的往上冒,关键字大的往下沉。冒泡排序这里给出两种,其中一种容易和选择排序混淆,在后面也给了区分解析。void simplebubble(int a[],int len){ //一种比较暴力效率较低的冒泡 int i,j; for(i=0;i<len;i++){ //这里两步和...
原创
发布博客 2020.03.14 ·
321 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

快排的C语言实现

数据结构篇:快排的C语言实现与个人解析快排是很经典的算法,时间复杂度为O(n*log2n),空间复杂度最好O(log2n),最坏O(n),快排是一种不稳定排序。#include<stdio.h>#include<stdlib.h>#define Maxsize 7typedef struct { int r[Maxsize]; int length;}SqL...
原创
发布博客 2020.03.12 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

循环队列的C语言实现以及和循环链表的区别

数据结构篇:循环队列的C语言实现及其基本操作#简述循环队列在有些嵌入式软件开发中使用频繁,同时队列是非常重要的数据结构。#include<stdio.h>#include<stdlib.h>#define Maxsize 20 //队列达到的最大长度 typedef struct { //循环队列的存储结构 int *base; int fr...
原创
发布博客 2020.03.12 ·
3157 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

循环链表的C语言实现

@TOC数据结构篇:循环链表的C语言实现知识基础知识基础包括C语言结构体,数据结构之链表。实现的C语言代码在理解知识的基础上,实现循环链表初始化、增加、删除操作。#include<stdio.h>#include<stdlib.h>static int size=0; typedef struct Node{ //定义一个链表的结点 int ...
原创
发布博客 2020.03.11 ·
657 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏