- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 C语言文件操作(简洁且生动版)—代码解析
fprintf();以及stdin,stdout,stderr的应用。fopen——打开文件后可以做的操作(前提—打开文件)二进制文件 fread();以及fwrite();fclose——关闭文件。1:向文件中写入数据。2:从文件中读取数据。
2023-07-28 13:11:28
790
原创 数据结构与算法—排序算法总结
通常在排序的过程中需要进行两个基本操作:(1)比较两个关键字的大小。(比较)(2)将记录从一个位置移动到另一个位置。(交换)
2023-07-26 16:15:21
130
原创 17数据结构—二叉树的拷贝和构造
当二叉树要拷贝构造新的二叉树时,应创建新的一个树存储空间内存等,并将要拷贝的二叉树的值,左节子数,右节子数通通遍历赋值给新的树。
2023-07-24 13:36:09
185
原创 16数据结构—求二叉树的深度(高度)
运用deth作为树的深度,用deth1为左子数遍历层次次数,deth2为右子树遍历层数次数,之后进行比较,较大的作为deth树的深度。
2023-07-24 13:22:25
428
原创 15数据结构—树的递归遍历求叶子结点
通过传入根节点,遍历左右节点树,当左右节点树都为空(NULL)时的次数和即为二叉树的叶子结点。递归条件:传入的根节点不为空。即if(root==NULL) return;
2023-07-24 13:07:30
414
原创 14数据结构—二叉树的递归遍历
将二叉树的根节点传进去,再递归遍历左右子树。递归条件:传进去的根节点不能为空,if(root==NULL) return;先序遍历(根左右)中序遍历(左根右)后序遍历(左右根)
2023-07-24 12:08:12
206
原创 13数据结构—二叉树的基本概念
在完全二叉树中,若从上至下,从左至右,则编号为i的节点,左孩子编号必为2i,右孩子编号必为2i+1;例将数组各节点放在树中,下标从1开始,除了根节点,其余节点的双亲均为i/2。: 由n(n>=0)个有限个节点组成的集合,该集合可以是空树或者由一个根节点及其互不相交的左右子树组成。二叉树的每个节点作为根节点时,它的左子树和右子树的绝对值不超过1,也叫平衡因子,只能为1、0、-1。对于任意一棵二叉树,如果叶子结点数为a,度数为2的结点总数为b,则有: a=b+1。深度为k的二叉树最多具有2^k-1个结点。
2023-07-24 11:55:16
56
原创 12数据结构—树的基本概念
当且仅当任何节点的两棵子树的高度差不大于1的二叉树\n(3)排序二叉树(二叉查找树Binary Search Tree):又称二叉搜索树、有序二叉树\n2、霍夫曼树(用于信息编码):带权路径最短的二叉树称为哈夫曼树或最优二叉树。:对于一棵二叉树,假设其深度为d(d>1),除了第d层外,其他各层的节点数目均已达最大值,且第d层所有节点从左向右连续地紧密排列,这样的二叉树称为完全二叉树,其中满二叉树的定义是所有叶节点都在最底层的完全二叉树。二叉树通常以链式存储。一个节点含有的子树的根节点称为该节点的子节点。
2023-07-24 01:43:05
145
原创 10数据结构— 栈的应用就近匹配(括号)
设定规则,碰到左括号入栈,在这基础上,遇到右括号出栈,如一直遇不到右括号,则左括号不匹配。如果栈上没有左括号,遇到右括号,即右括号不匹配。判断栈上有没有元素的重要条件为栈的大小。即最后栈上有元素,则可以说明左括号不匹配。栈上没有元素,也不是右括号匹配的情况的话,即最后结果为括号匹配。
2023-07-23 15:27:18
173
原创 07数据结构—栈的链式储存
跟06上章对比,链表实现结构类同,都是用到了企业小挂钩的写法。这里的区别就是顺序存储用到的是数组方式存储,其用数组尾部进行增删栈操作。而这里的链式储存是用链表头部进行增删栈操作的。
2023-07-22 18:06:07
44
原创 05数据结构与算法—双向循环链表解决约瑟夫问题
这里跟之前不一样的地方是按值删除的函数实现,这里不能用下标查找方式进行删除,以防双向循环导致错乱。主要在主函数测试实现约瑟夫问题代码的实现。
2023-07-22 14:18:27
293
原创 04数据结构与算法—双向循环企业链表(小挂钩)
这里的特点主要是链表的尾部指向不为NULL。如链表刚初始化时, list->head.next = &(list->head),指向的为头结点,之前的写法为:list->head.next =NULL。即正是这样才形成了链表双向循环的特点。
2023-07-21 20:02:50
156
原创 03数据结构——单向企业链表(小挂钩)
与之前单向顺序链表的区别就是,结构体结点没有直接开辟内存,仅是开辟小挂钩连接,在自定义数据中开辟结点内存空间。
2023-07-21 14:10:10
102
1
原创 01数据结构与算法——动态数组的搭建
利用一个结构体进行动态数组的搭建,从而实现增删改查的功能,类似于STL容器。1.结构体分配内存后,记得数组也要分配实际内存空间。2.代码设计中容量(capacity)与大小(size)的概念要区分开。
2023-07-18 22:40:26
91
1
原创 STL常用算法
算法主要由头文件<algorithm><functional><numeric>组成。* <algorithm>是所有STL头文件中最大的一个,范围涉及到比较,交换,查找,遍历操作,复制,修改等等* <numeric>体积很小,只包括几个序列上面进行简单数学运算的模板函数* <functional>定义了一些模板类,用以声明函数对象。
2023-05-09 22:54:59
96
原创 STL函数对象
template<class T>bool logical_not<T> //逻辑非*/* * template<class T>T multiplies<T>//乘法仿函数。* * template<class T>T divides<T>//除法仿函数。* * template<class T>T modulus<T>//取模仿函数。* * template<class T>T negate<T>//取反仿函数。* * template<class T>T minus<T>//减法仿函数。
2023-05-07 00:47:03
40
原创 STL常用容器
本质:string是C++风格的字符串,而string本质上是一个类string和char * 区别:char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。特点:string类内部封装了很多成员方法。例如:查找find,拷贝copy,删除delete替换replace,插入insertstring管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。
2023-04-09 09:09:15
376
原创 Microsoft Visual Studio 2022 项目打包详细步骤(初学者必会)
步骤1:在线载安装Setup project双击下载,然后关闭vs,自动安装,安装完成后提示。VSIX Installer修改安装完成后,关闭vscode,再次打开vscode。 步骤2:打开你想要打包的项目,点解决方案右击,添加新建项目。 ...
2022-04-10 15:20:59
34435
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人