- 博客(12)
- 收藏
- 关注
原创 python列表题目
一、插入位置类型:列表元组描述对一个有序的整数序列,现在要将一个整数插入进去,并保证该序列仍然有序。请输出这个数..
2022-03-22 15:00:54 2940
原创 数据结构--回溯算法
原文链接(点击原文链接获取更多学习干货):http://blog.bools.cn/archives/1388一、什么是回溯?回溯,即深度优先,采用试探性的搜索原则,按优先条件向前进发,能进则进,无路则退,退而再另辟蹊径,直至得到所有有效的结果集,也可能无解,有时可能会产生重复的解。满足回溯条件的某个状态的点称为“回溯点”。剪枝:在搜索过程中,为提高搜索效率利用一些过滤条件而忽略某些不可能产生解的情况,从而避免不必要的搜索,使得提前回溯。最优剪枝:每次记录当前得到的最优值,如果能够判断出当前路径
2021-09-05 16:40:00 780
原创 数据结构--贪心算法
贪心算法:采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。在对问题求解时,总是做出在当前看来是最好的选择,也就是说,不从整体最优上考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者整体最优解的近似解。解题的一般步骤是:1、建立数学模型来描述问题2、把求解的问题分成若干个子问题3、对每一子问题求解,得到子问题的局部最优解4、把子问题的局部最优解合成原来问题的一个解。改算法存在问题1
2021-08-25 16:20:06 879
原创 数据结构--平衡二叉树
原文链接(点击原文链接获取更多学习干货):http://blog.bools.cn/archives/1231平衡二叉树二叉树上的结点上的左子树的深度的值减去右子树的深度的值叫做平衡因子BF 平衡二叉树就是一棵二叉树上所有结点的平衡因子的绝对值小于等于1的树判断平衡二叉树是二叉排序树 二叉树上所有结点的平衡因子的绝对值小于等于1下图不是平衡二叉树,因为不满足为二叉排序树,二叉排序树是左子树都小于根节点,右子树大于根节点的二叉树。下图也不是平衡二叉树,不满足节点的平衡因子的
2021-08-22 22:32:53 306
原创 C++语法的输入和输出
一、输入和输出要用到的头文件头文件 函数和描述 <iostream> 该文件定义了cin、cout、cerr和clog对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。 <iomanip> 该文件通过所谓的参数化的流操纵器(比如setw和setprecision),来声明对执行标准化 I/O 有用的服务。 <fstream> 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的...
2021-08-18 16:09:50 244
原创 图的深度遍历和广度遍历
深度优先遍历(DFS)原理:右手原则,在没有碰到重复顶点的情况下,分叉路口始终是向右手边走,每遍历一个顶点就做一个记号。思路:从A顶点开始,由右手原则到B、C、D、E、F,由于A遍历过了,到G,G后无路可走了退回上一个顶点F,由于A、G、E遍历过了,到H,H后无路可走退回下一个顶点F,F退回E,E退回D,遍历I,退回D、C、B、A,结束遍历。/* 邻接矩阵的深度优先递归算法 */void DFS(MGraph G, int i){ int j; visited[i] = ..
2021-08-13 15:30:51 1171
原创 c语言数据结构--图
什么是图?图是地图的图吗?我拿着地图想去哪就去哪吗?是滴,图是多对多的情况,对于去一个地方有不同的路径到达,两个地方往返都有不同的路径。图是由顶点和边或弧两部分组成的,可以分两个结构来分别存储。另外图上的任何顶点都可以被看作是第一个顶点,任一顶点的邻接点之间也不存在次序关系。图分为无向图、有向图、网图。1、邻接矩阵原理:顶点用一维数组来存储,边或弧用二维数组存储。typedef struct{ VertexType vexs[MAXVEX]; /* 顶点表 */ EdgeType a
2021-08-11 23:05:14 1607
原创 c语言数据结构-树的笔记
一、树的定义 1、树的定义:树是n个结点的有限集。当n=0时成为空树,在任意一颗非空树中:有且只有一个特定的称为根结点 当n>1时,其余结点可分为m个互不相交的有限集,其中每一个集合又是一棵树,并且称为根的子树。2、二叉树性质第i层上至多有2^(i-1)个结点(i>=1)。 深度为k的二叉树至多有2k-1个结点(k>=1)。 如果i=1,则结点i是二叉树根; i>1,则其双亲结点为i/2; 2i>n,则结点i无左孩子,否则左孩子结点为2i; 2i+1&.
2021-08-07 21:58:28 129
转载 c语言实现简单俄罗斯方块
一、摘要目的:做一个俄罗斯方块,能基本实现变换形态、方块颜色变化、行满消除。二、过程基于c语言写一个俄罗斯方块,由于本人比较菜,有借鉴别人的代码,下面是项目的一些代码和效果。- 总体效果- 代码注释1. 主函数,开始是初始屏幕的设置,打印游戏界面的边框,游戏提示。BlockRand()函数随机产生一种形态的方块。int main(){ DeawMap();//画地图打印边框函数 code_y = rand() % 7 + 1;//在7种形态中产生1种形态赋值给code...
2021-07-31 20:52:01 9299 5
转载 c语言学习笔记
一、srand()和rand()函数的定义与使用1. srand()函数是随机数发生器的初始化函数,srand和rand()配合使用产生伪随机数序列。2. srand()函数的原型:void srand(unsigned int seed),一般使用格式为srand(time(NULL)),使用srand函数要定义头文件stdlib.h.3. rand()函数的使用:C语言中生成某区域,模除+加法rand()%m+n:生成区域[n,n+m],从m开始到m+n的m个数字范围内rand()%m...
2021-07-25 16:55:45 129
转载 c语言数据结构与算法学习之线性表和栈的笔记
数据结构概念:传统意义上,数据结构分为逻辑结构和物理结构。逻辑结构:是指数据对象中数据元素之间的相互关系。物理结构:是指数据的逻辑结构在计算机中的存储形式。线性表是最常用且最简单的一种数据结构,线性表是n个元素的有限序列。是一个数组按顺序存储n个数据,如果要按某个条件,对数据进行排列可以采用选择排序法和冒泡排序法。选择排序法 for(i=0;i<n-1;i++){ index=i; for(j=i+1;j<n;j++) ...
2021-07-17 21:55:41 120
转载 c语言链表的概念及用法的学习
一、链表的概念:链表是一种常见而重要的动态储存分布的数据结构。链表像车链子一样,它由若干个同结构类型的“结点”依次串接而成的。链表对比数组最大的特点是每个数据单元都是动态分配的,节省内存空间,且操作灵活。关于动态分配相关的函数void *malloc(unsigned size)功能:在内存的动态存贮区中分配一块长度为size的连续空间。返回值:指针,存放被分配内存的起始地址。若未申请到空间,则返回 NULL( 0 )。例如:(int *) malloc(sizeof(int))
2021-07-11 18:10:46 1451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人