![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c++基础与数据结构
文章平均质量分 50
零基础入门C++专项学习和数据结构学习
不会,就是不会!
人工智能小白
展开
-
假定幸运数是只包含4或7的正整数,如7、47。判断一个正整数n是不是一个幸运数。是则输出YES,否则输出NO。不考虑负数,0或者其他特殊情况。不考虑溢出或者超出整型范围的情况。通用版!
have)//如果经过遍历后 用于遍历的变量如果等于总位数,并且标志始终为0,那就说明都不等于7或4。//用来制作第一步 先把原来的数全部取余 1234 -> 4 34 234 1234 然后存入数组。//这里准备用除 用除能够把原来的数里的每一个数字都提取出来。for( t = 0;t++) //数组是从索引为0出发的。//标志 如果为0则没有等于4或7 为1则有。//用来代替n进行运算。//用来储存每一位数字。//先找到有多少位数。原创 2023-09-08 16:35:50 · 345 阅读 · 0 评论 -
sqrt平方根实现
/mid过小,从mid到high中找值。//mid过大,从low到mid找值。//定义左中右三个变量。sign = mid;int a = 4;//赋值右变量为中心值。int sign;//定义一个标志变量。//类似于折半排序原理。原创 2023-09-06 16:45:16 · 50 阅读 · 0 评论 -
进制转换手画图解释
原创 2023-09-05 20:12:40 · 57 阅读 · 0 评论 -
二叉树还原之前中,中后序遍历还原(手画图解释)
二叉树还原(reconstruction)是指根据二叉树的遍历结果(如前序遍历、中序遍历、后序遍历等),恢复出原始的二叉树的过程。需要注意的是,如果二叉树中存在重复的元素,则无法通过前序遍历结果和中序遍历结果还原出唯一的二叉树。前中序适合从根往叶子推。中后序适合从叶子往根推。原创 2023-06-08 19:45:41 · 150 阅读 · 0 评论 -
三种编码方式(费诺曼编码,霍夫曼编码,哈夫曼树编码)的简单解释和介绍
哈夫曼树是一种被压缩数据的编码方法,根据哈夫曼树的定义,当一条边向左分支走时,我们可以将其用二进制0表示;因此,哈夫曼树的存储可以使用0表示左分支,使用1表示右分支。霍夫曼(Huffman)编码是一种经典的前缀编码技术,通常用于数据压缩领域。它的基本思想是对不同符号的出现频率进行统计,然后根据不同符号出现的概率来构造不同长度的编码,以达到信息的最优压缩。费诺曼(Fano)编码是一种前缀编码,其基本原理是将出现频率较高的符号用短的编码表示,而出现频率较低的符号则用长的编码表示。原创 2023-06-08 18:55:40 · 2608 阅读 · 0 评论 -
C++普里姆算法(最小生成树)代码实现
/判断顶点是否存储进二叉树 0为未储存 1为储存。//设定一个边 , 令这条边的权值最大,但这条边的两个顶点不知道。if(vax[i] == 1) //从已存入树的节点开始寻找下一个权值最小的顶点。//记录这条边已加入树。//储存进树的顶点总数。//记录这个顶点已加入树。//定义顶点总数和边的总数。//tree[] 代表 储存已存入最小数的边集。7.从已存入树的顶点开始,寻找下一个权值最小的点。9.记录最小边已存入树,记录该顶点已存入树.原创 2023-06-05 09:35:48 · 383 阅读 · 0 评论 -
C++之图的深度和广度遍历(手画图解释)
在有限的边界下,对于同一张图的同一起点,深度遍历和广度遍历的结果是唯一的。也就是说,如果是在同一张图的同一起点开始遍历,不管采用深度遍历还是广度遍历,得到的遍历顺序和结果序列是确定的。但是,如果是在不同的起点开始遍历,得到的遍历顺序和结果序列可能是不同的。同时,在某些特殊情况下,两种遍历方式得到的结果也可能是相同的,例如在一条链式结构的图中。需要注意的是,有些图是有环的,因此深度遍历和广度遍历可以在图中找到不同的环,导致结果不同。问:深度遍历和广度遍历结果唯一吗?2.广度遍历类似二叉树的层次遍历。原创 2023-05-30 12:18:12 · 208 阅读 · 0 评论 -
C++之以图建树(普里姆算法,克鲁斯卡尔算法)最小生成树
在无向图中,最小生成树可能是唯一的,也可能不是唯一的。具体来说,如果在无向图中,边的权重都是唯一的,那么最小生成树就是唯一的。但是,如果存在两条或多条边的权重相等,则可能存在多个最小生成树,因为在构建最小生成树的过程中,可能存在多种选择。在有向图中,不存在最小生成树的概念,只有最小生成森林(Minimum Spanning Forest)。同样的,如果有向图的边的权重都是唯一的,则最小生成森林是唯一的。但是,如果存在两条或多条边的权重相等,则可能存在多个最小生成森林。问:这两种算法的结果唯一吗?原创 2023-05-30 12:23:48 · 348 阅读 · 0 评论 -
C++之堆排
data++是C语言中的一个表达式,它会将指针data指向的地址向后移动一个存储单位的距离,这里一个存储单位指的是数组的元素大小。如果data是一个数组名,则它代表数组的首元素的地址。i--)// n/2是找到最后一个叶子的父节点在树中的位置,当i=1时,就说明此时在根节点处,在树中根节点是从1开始的 并不是0。需要注意的是,由于data是一个指向数组的指针,当使用data++表达式时,会改变指针指向的位置,因此建议在代码中使用时要小心。最小堆:根节点的值最小,任意节点的值都小于等于其左右子节点的值。原创 2023-05-23 13:42:28 · 346 阅读 · 0 评论 -
C++之代码判断是否为完全二叉树
原理条件在c++注意点专栏里 可以去看。//是 返回1 不是 返回55。原创 2023-05-22 21:09:02 · 560 阅读 · 0 评论 -
C++二叉树前序,中序,后序,遍历大合集
if(root->rchild==NULL || root->rchild==token)//精简化的条件。//条件是 1.叶子 2.右孩子为上一次打印出来的节点 3.有孩子为空,左孩子为上一次打印出来的节点。//1和2条件 是以左部分树为标准的 3条件是在左半部分的条件基础上对右半部分所需条件的补充。//这里的条件同上 只不过存入节点的次序不同。如需详细注释 请看博主文章(有专门针对三种遍历的文章)原创 2023-05-22 16:25:26 · 479 阅读 · 0 评论 -
C++二叉树后序非递归遍历(三种方法)
if(root->rchild==NULL || root->rchild==token)//精简化的条件。//条件是 1.叶子 2.右孩子为上一次打印出来的节点 3.有孩子为空,左孩子为上一次打印出来的节点。//1和2条件 是以左部分树为标准的 3条件是在左半部分的条件基础上对右半部分所需条件的补充。//这里的条件同上 只不过存入节点的次序不同。原创 2023-05-22 16:24:08 · 913 阅读 · 0 评论 -
C++前序遍历(栈)
/开始非递归前序排序读出 (中左右)原创 2023-05-17 18:23:17 · 493 阅读 · 0 评论 -
C++层次遍历(队列结构)
/重要算法(head +1)%size这是实现循环的关键。//这里要设为-1 这又这样才能保证是从索引为0开始的。//不然就会输不出来head=tail时候的值。//层次遍历 类似前序遍历一 只不过它们用的结构不同 用法是相同的。typedef struct ok //树结构。原创 2023-05-17 18:21:54 · 1093 阅读 · 0 评论 -
C++二叉树中序非递归遍历(两种方法)
/然后再把这个右孩子最左边的一列树的数据全部存入 这样循环就解决了。//一一读出 当读出的这个树有有孩子时 就可以让它等于它的右孩子。//把最左边的一列树的数据全部存入。//变的地方就是 先存入根 到了后面读出了根 然后存入右孩子 最后又存入了根。void midvisitbystack1(bittree *root)//已做演示。void midvisitbystack2(bittree *root)//已做演示。//注意的地方2 中。//栈的操作 返回栈顶元素。原创 2023-05-17 18:18:47 · 435 阅读 · 0 评论 -
C++排序大合集(冒泡,交换,插入,折半插入,快排,希尔,归并,堆排)
/ 第一次排序 {65 88} {77} {33 55} 里面有2个排序 最后一次分组结束的结果先排序 然后依次顺序排序。// {88 65} {77} {33} {55} 里面有2次分组。// {88}{65}{77} {33}{55} 里面有2次分组。// {88 65 77} {33 55} 里面有1次分组。// 第二次排序 {65 77 88} {33 55} 里面有1个排序。//存储要插入的变量;原创 2023-05-14 21:20:27 · 374 阅读 · 0 评论 -
C++二叉树递归方法存入和三种递归方法读出(前序,中序,后序)
手写纸张解释,小白级解释.原创 2023-05-11 22:48:04 · 412 阅读 · 0 评论 -
C++归并排序 (先理解一下冒泡排序和插入排序的原理,保姆级解释嘿嘿嘿~~)
内涵保姆级解释 o(* ̄▽ ̄*)ブ原创 2023-05-04 21:22:33 · 326 阅读 · 0 评论 -
C++快速排序 (个人觉得先把直接插入排序,变种插入排序,折半插入排序,希尔排序都学一下再来学快排)
保姆级解释嘿嘿嘿~原创 2023-05-03 21:20:31 · 436 阅读 · 0 评论 -
c++简单的插入排序
/这里很巧妙 这时候你要插入的就是data[t]=data[i]的数据 把data[i]前面一直到data[j]的位置全部都向后移动一个索引。//变种就好理解多了 原理就是首先让有序数据的最后一个 无序数据的第一个比较 如果有序的元素比它大 那么就调换。//这时候就已经把原来的data[j]的值的位置换成了data[j+1]的位置了。//所以 这个时候的data[j]里面是没有值的 正好给data[i]插入进去。//如果一开始就是乱序的 我们可以直接把第一个数据看成是有序的 然后循环插入即可。原创 2023-04-20 16:54:01 · 216 阅读 · 0 评论 -
c语言折半插入排序 (小白详解版) 一定要自己动手比划一下 会发现代码的奇妙之处
一定要自己动手实操原创 2023-04-22 17:53:05 · 116 阅读 · 0 评论 -
C++冒泡排序 冒泡排序的精简化 交换排序 交换排序的精简化 希尔排序
/2 因为我们每次循环之后最大的数就被排到最后去了 从最后一个位置依次往前就是元数据的从大到小的顺序排列 所以每次循环就可以在全一次的循环次数基础上减去1。//选择排序的变种 这个好理解 意思就是以有序序列的最后一个值作为比较值 与无序序列的所有数相比较 如果无序序列的值比有序序列的值小(升序) 那么就交换。//比如 data=[5,4,7,2,1,6] dk=n/2 则data1=[5,4,7] data2=[2,1,6]//因为当dk=n/2时有时候只是部分有序 写成n/2+1就变有序了。原创 2023-04-25 14:04:18 · 220 阅读 · 0 评论 -
c语言稀疏矩阵转置(三元组表)
稀疏矩阵简单转置原创 2023-04-17 21:47:27 · 252 阅读 · 0 评论 -
C语言队列空间自动扩展
简易的自动扩展空间原创 2023-04-06 19:47:32 · 104 阅读 · 0 评论 -
c语言队列的另一种简单实现
简单实现队列原创 2023-04-06 19:33:18 · 53 阅读 · 0 评论 -
C语言队列的实现(链式队列)
简单的队列实现原创 2023-04-04 19:57:35 · 86 阅读 · 0 评论 -
C语言栈的简单实现(两种方法)
栈的简单解释原创 2023-03-30 22:53:12 · 96 阅读 · 0 评论 -
数组在链表中的基数排序(个人详解)
个人对基数排序的看法及解释原创 2023-03-29 13:51:38 · 98 阅读 · 0 评论 -
C++一维,二维,三维,多维数组(小白版)
数组的简单概括原创 2023-03-27 21:15:44 · 272 阅读 · 0 评论 -
C++链表的简单创建,用哈希存储,拉链法解决冲突(输出清晰版),(基础认知请回到基础版学习)
就是在基础版的输出上做了一点美化,不出意外的话应该都看得懂,看不懂链表内容,就回到基础版学一下。原创 2023-03-25 14:56:33 · 141 阅读 · 0 评论 -
C++链表的简单创建,用哈希存储,拉链法解决冲突(并附上简单的在链表中增加一个元素的函数和简单的提取元素的函数)入门详解
C++链表的简单创建,用哈希存储,拉链法解决冲突(并附上简单的在链表中增加一个元素的函数和简单的提取元素的函数)原创 2023-03-24 00:01:46 · 144 阅读 · 0 评论 -
C++单链条中删除节点相同的数据
C++单链条中删除节点相同的数据原创 2023-03-23 01:07:02 · 62 阅读 · 0 评论 -
C++单链条删除一个节点后仍然保持有序
C++单链条删除一个节点后仍然保持有序原创 2023-03-23 00:54:49 · 64 阅读 · 0 评论 -
C++单链条插入一个数仍然保持有序
C++单链条插入一个数后仍然保持有序原创 2023-03-23 00:30:04 · 98 阅读 · 0 评论 -
c++的单链条插入和删除数据
c++单链条的删除和插入数据原创 2023-03-18 15:41:16 · 111 阅读 · 0 评论 -
c语言倒序输出单链表(不改变内存地址)两种
c语言单链条倒序输出(不改变内存地址)两种方法原创 2023-03-18 15:35:34 · 343 阅读 · 0 评论 -
倒序链表(改变内存地址)(两种)
c语言的单链条倒序(改变内存地址)原创 2023-03-18 15:31:58 · 79 阅读 · 0 评论 -
c++创建单链条(头插,尾插)
c++单链条创建原创 2023-03-18 15:24:21 · 152 阅读 · 0 评论 -
大写字母转小写字母
新手学习,大小写转换原创 2023-02-01 13:29:56 · 64 阅读 · 0 评论 -
求最大公约数和最小公倍数
求最大公约数和最小公倍数原创 2022-12-05 17:32:13 · 194 阅读 · 3 评论