自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

转载 使用C语言实现智能指针

在destroy_shared()函数中,我们首先加锁以防止其他线程同时访问该智能指针,然后调用destroy_shared_resource()函数销毁共享资源,并最终解锁。总之,通过定义合适的结构体和函数来实现std::shared_ptr类似的功能,在C语言中也可以很方便地实现智能指针机制。同时,通过定义一些宏来简化代码,可以使得C语言实现的智能指针使用起来和C++中的一样简单高效。其中,在retain()中,我们首先加锁以防止其他线程同时访问该智能指针,然后将引用计数器加1,并最终解锁。

2023-10-08 22:55:27 201

原创 string写时写时复制的实现

根据之前的分析,引用计数需要占用4B,于是为了保存长度为strlen(pstr)的字符串,

2023-03-31 10:57:13 410

原创 C++类实现双链表

其默认访问权限为public,与之对应的定义类的关键字为class,class的默认访问权限为private.

2023-03-30 23:50:15 380

原创 恢复二叉树

以下的所有操作均基于该二叉树,关于二叉树的其他基本操作,参考该文章本文研究的对象是已知二叉树的前中序序列 还原二叉树 和 已知中后序序列 还原二叉树 已知树的结构为递归型,可用递归方式创建树 可用递归方式遍历树 同样也可用递归方式还原树在还原二叉树之前需要熟悉二叉树的三种遍历 为下文的还原操作提供理论支持讨论前序遍历特点: 先根后左结点 再右结点 前序序列总是先输出第一个访问的结点中序遍历特点:先访问左孩子 遇到左结点 遇到左结点为空再访问根结点 再访问右结点后序遍历特点: 先.

2021-05-19 16:17:34 1605

原创 二叉树的遍历

建立如下图所示的二叉树,以下所有的遍历操作均基于该二叉树先来用递归的方式遍历二叉树因二叉树的存储与建立均可用递归方式,且二叉树与递归息息相关,故用递归方式遍历二叉树简单明了,二叉树的遍历方式如下:先序 根左右中序 左根有后序 左右根先序遍历(递归):void preOrder(LPTREE root) { if (root) { //printCurrentNode()访问根 再依次递归调用本身访问左孩子和右孩子 printCurrentNode(root);

2021-04-02 23:15:29 302

原创 用队列实现杨辉三角

打印杨辉三角是一个经典问题,也是小白非常头疼的一个问题,其实掌握好诀窍也并不难,如下图,第一二行不用做什么处理,到了第三行及以后才需要处理,最简单的实现方式就是先找到规律,即首尾元素为1,中间元素是该位置上一行同列的元素及其前一个元素和(第三行开始,不包括首尾元素),用二维数组实现是最简便便捷的方法此处不仅给出了杨辉三角的普通实现方式,也给出了杨辉三角的队列实现(PS:队列是一种数据结构,第二张实现方式需要有数据结构基础才能理解)#include<stdio.h>#define MAX 1

2021-03-03 20:12:25 5577 3

原创 用链表实现回文判断

//回文判断(字符数组) #include<stdio.h>#include<cstring>int main(){ int len; char str[50]; gets(str); len=strlen(str); for(int i=0;i<len/2;i++){ if(str[i]!=str[len-i-1]){ printf("不是回文"); return 0; } } printf("回文"); return 0;}

2021-02-27 17:29:03 979

原创 数字字符串转为数字 C语言实现

数字字符串转为数字 C语言实现一时兴起,想到的一个操作,数字字符串如何转数组呢???问了一下度娘,没找到满意的回答,笔者琢磨则自己写一个,并且还准备了几份惊喜,话不多说,直接上干货,如下代码://此函数需要特别注意数据类型 //任何时候涉及浮点数的运算都用double //pow()返回值为double 必须要保证传入的参数至少有一个为double类型 //pow()函数返回类型是double 确保精度足够 便于浮点运算 #include<stdio.h>#include<

2021-02-12 22:44:48 6664 5

原创 蓝桥杯 出栈顺序问题引发的思考以及递归的优化(缓存池)

蓝桥杯 出栈顺序问题引发的思考以及递归的优化(缓存池)关于递归的优化和思考今夜是除夕夜,首先祝各位读者新年快乐,心想事成。在我们IT圈内有句话,普通程序员用迭代,天才程序员用递归。诚然,递归确实能够将许多复杂的问题简化,但是问题来了,由于递归采用自顶向下的运算方式,未结果优化的递归往往做了大量的重复运算,这就给人产生了递归无用,递归耗时这一印象,但是不要忘了“天才程序员用递归”,如果善用递归,非但不会出现耗时的情况,反倒让代码简介易懂,高效,下面笔者选用一道蓝桥杯的真题出栈问题来揭开递归的神秘面纱!

2021-02-11 23:10:16 265

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除