贪心算法实例详解 1.简介贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性, 算法和竞赛 2022年04月28日 145 点赞 0 评论 131184 浏览
二叉树及分类介绍 1.二叉树简介二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。如图如图,每一个结点中最多拥有一个左结点和一个右结点,并没有多余的结点,这是很明显的二叉树的特征2.二叉树的特点由二叉树定义以及图示分析得出二叉 树 2022年05月20日 255 点赞 0 评论 109870 浏览
编程预备 两个必备的函数知识(其均来自于stdlib.h库中)1.Malloc函数malloc()函数在堆中申请分配一个大小为size个字节的连续内存空间,若成功分配,则返回一个指向所分配空间起始地址的指针,否则返回空指针(NULL)。2.Free函数free()函数用来释放已分配的内存空间, 数据结构入门 2022年02月13日 93 点赞 0 评论 119891 浏览
竞赛学习路线推荐(算法数据结构) 阅读这一节之前,请确认你熟悉的语言,无论C、C++、java都已经很熟练运用,不存在语法问题了,否则参考本节的学习路线会让你变得着急和打退堂鼓对于已经掌握一种语言可以参赛之后,算法和数据结构的学习,笔者认为大体分三个步骤:那些顺带的、不用专门学的常规算法和数据结构;这些如递归算法、遍历枚举、模拟、素数 从入门到进阶 2022年05月04日 234 点赞 0 评论 119208 浏览
双向链表的基本操作及C语言代码实现 1.双向链表的插入操作如图所示:对于每一次的双向链表的插入操作,我们首先需要创建一个独立的结点并通过malloc操作开辟相应的空间,其次我们选中这个新创建的独立节点,将其的pre指针指向所需插入位置的前一个结点,同时,其所需插入的前一个结点的next指针修改指向为该新的结点, 链表 2022年03月02日 256 点赞 0 评论 128809 浏览
最短路径,迪杰斯特拉(Dijkstra)算法及C/C++代码实现 1.何为最短路径最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径,大致可以分为如下几种问题,可无论如何分类问题,其本质思想还是不变的,即,求两点间的最短距离。a)确定起点的最短路径问题-即已知起始结点,求最短路径的问题。 图 2022年05月23日 114 点赞 0 评论 111162 浏览
图的存储:链式向前星 1.概念链式向前星代码是基于向前星代码的优化,这是极大多数算法竞赛以及高效率图论算法喜欢适用的创建方法,与邻接表和邻接矩阵比较容易的理解方式,向前星算法并不容易理解。在理解链式向前星之前我们需要了解什么是向前星,前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序, 图 2022年01月11日 55 点赞 0 评论 96126 浏览
C++STL之Queue容器 1.再谈队列回顾一下之前所学的队列,队列和栈不同,队列是一种先进先出的数据结构,STL的队列内容极其重要,虽然内容较少但是请务必掌握,STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。2.相关头文件头文件:#include<queue>3.初始化格式为:explicitqueue(co C++STL库教程(附带题库) 2022年03月14日 139 点赞 0 评论 116477 浏览
C++的区别 1.从C语言到C++1980年,BjarneStroustrup博士着手创建一种新的语言,能够具有面向对象的程序设计特色。在当时,面向对象编程是一个新颖的概念,Stroustrup博士并不是从头开始设计新语言,而是使用C语言进行修改,而这就是C++语言。 C++STL库教程(附带题库) 2022年03月05日 153 点赞 0 评论 81807 浏览
矩阵加减法操作及C语言代码实现 对于矩阵而言,我们首先要学习他的基本概念,其次就如同学习常规数字一样需要掌握基本的加减乘,再者,更具相关的概念学会求诸如秩,点阵,矩阵运算值等,接着学习一些特殊的矩阵操作,如矩阵的翻转,最后这些概念完善之后,请开始学习诸如矩阵的卷积核运算,稀疏矩阵,增广矩阵等这些特殊的矩阵。 串、数组、矩阵和广义表 2022年04月10日 147 点赞 0 评论 106309 浏览