- 博客(10)
- 收藏
- 关注
原创 (超详细)二叉树前序遍历应用三道经典算法【C++】
例如,如果有一个集合 S = {a, b, c},那么它的幂集 P(S) 是:P(S) = { {}, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}}1. 如果 `index` 等于集合的大小,意味着我们已经到达了决策树的叶节点,此时 `current` 包含了一个完整的子集,将其加入到 `set` 中。3. 在递归调用返回后,我们移除刚刚加入的元素(即回溯),然后再次递归调用 `generateset`,传入下一个元素的索引。
2024-10-28 11:50:15
624
原创 【超详细C++】二叉树2(将顺序存储结构转换为链式存储结构)
一、递归版本顺序存储结构转换为链式存储结构完整代码在文章末尾相比1做出了一个更好的适配调整:把数据类型用模板T,这样在村不同数据类型的时候更加方便调整。当给一数组时我们需要通过代码将它转换成链式存储结构,每个结点都有左右两个指针。一、递归版本顺序存储结构转换为链式存储结构这里为什么要写两个函数呢?它们是函数重载,这样做的目的是让第二个函数调用第一个函数,在函数中就已经把下标传递好了,不需要用户手动定义减少错误可能。
2024-10-25 09:13:14
605
原创 (超详细)二叉树1【内涵完整C++代码】
在我刚刚接触到二叉树的创建代码时,我对这种递归的运用不是很理解,不知道你有没有这样的疑问:里面有return,那return什么呢?看了前面的图解,我相信你已经明白了,已经能够回答这两个问题了,如果不懂可以尝试自己去画递归调用图。本文章为二叉树系列第一集,后续还会出,今天先介绍如何建一个二叉树而且前序遍历它。完整版代码放最后了,前面是讲解。运用了递归的思想,头结点创建成功后,就会去创建孩子。如果当前节点为空,会return到该节点的双亲结点去,继续上一段代码未完成的部分。这个二叉树前序遍历应该是:1,
2024-10-18 18:34:21
292
1
原创 C++模板(了解向)
本篇博客先简单介绍模板,旨在了解什么是模板,干啥用的。后面会有vector、list等的介绍,这些全部写完才能完成模板初阶的介绍。
2024-05-18 15:53:25
197
原创 C++入门知识之构造函数与析构函数(总结向)
构造函数的任务不是开空间创造对象,而是初始化对象,它的功能和Init函数的功能类似,你也可以理解为:我总是忘记调用Init,而如果我就用构造函数,你就不用担心了,编译器会自动调用。这是一个构造函数Date()_year = 1;_month = 1;_day = 1;与构造函数功能相反,但是严格来说它不是销毁对象,是完成对象中的资源清理,可以理解成老忘记调Destory,但是注意有需要清理的才用,不是说这个在每个程序里都有用。~Stack();
2024-04-23 20:42:42
1289
原创 C++基础三大知识点(命名空间、io流、缺省函数)
我们先看一个示例(注:本章中大部分并非完整代码,只是为了演示而展示了一些代码段)这样的代码里有一个rand,但是库里也有rand关键字,命名发生了冲突。再看下面这段代码我们把这段{}里的称为命名空间域,这样就解决了上述问题,但是注意有了这个空间也不是想怎么定义就怎么定义,同一域里命名不能相同,不同域可以定义相同的名字,除此之外不用顾虑名称了。不仅可以定义参数,结构体、函数也可以定义。
2024-03-30 10:35:09
710
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅