算法学习:模拟 再看题目,只对普通的回文日期输出一次,而需进行判断的数的范围极大,所以我们设置一个标志数来控制输出。再结合这道题目,对8位数的日期进行判断是否为回文日期,所以这道题目需要考虑到日期的合法性。由于需要对8位数中的每一个数都进行判断是否合理,所以我们采取将8个数均提取出来再判断的方式,同时需要对8位数进行年月日对拆解。下面我们对题目进行分析,首先涉及到日期,我们很敏感的考虑到日期的合法性,而日期的。只有在月份为2时我们才会有针对闰年的判断,剩余的判断就是常识啦。第二步对普通日期的合法性进行判断,代码如下。
高阶数据结构[2]图的初相识 本章将大家学习数据结构中的“图”。有学习过离散数学的同学对这一章节或许会比较熟悉。本篇文章将从最基础的概念开始介绍,一步步深入。让我们开始吧!本篇文章,我们对图进行了基本的了解。在后续讲解图的相关算法时,我们将以邻接矩阵的存储方式的基本框架来分析。
高阶数据结构[3]图的遍历 书接上回,这篇文章将在图的存储结构上学习图的遍历方法。图的遍历分为两种:1.BFS(Breadth First Search)宽度优先搜索2.DFS(Depth First Search)深度优先搜索下面让我们一起来学习吧!注意,接下来的讲解基于图的邻接矩阵存储结构。以上就是对图的遍历方式的讲解,这部分会比较困难,大家耐心学习。下一章节我们将讲解最小生成树的相关问题。
贪心算法[1] 这一题选自洛谷p1223题,根据题意我们可以知道要想得到最短的等待时间得先让排队时间少的先接水。下面介绍两种方法进行解决。我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征,重量和价值。由题意可知我们需要挑选出价值最大的物品放入背包,价值即单位价值。第二种方法,不使用结构体,使用vector+pair。首先用最最最经典的部分背包问题来引入贪心的思想。接水时间又要有序号且这两个元素是对应同一个人。,所以我们第一种方法使用结构体。所以我们使用结构体。
数据结构之队列 我们在这里使用链式的结构去实现队列。原因是,使用链式的结构对数据的删除更加方便,而如果使用数组式结构则会使效率降低。我们首先确定队列结构中的需要哪些变量。1.对每一个结点的定义。2.由于入在队尾,出在队头,所以我们还要有记录队列的对头队尾的变量。具体代码如下。//指向下一个结点//结点存储的数据}QN;//记录队列的头//记录队列的尾}Queue;我们可以看到,在定义记录队列头和尾的结构体中,phead和ptail都是QueueNode类型,所以实际上这是一个套娃的结构。
[C++基础]new一个对象 malloc和free是函数,new和delete是操作符malloc申请的空间不会初始化,new可以初始化malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可,如果是多个对象,[]中指定对象个数即可malloc的返回值为void, 在使用时必须强转,new不需要,因为new后跟的是空间的类型是指针malloc申请空间失败时,返回的是NULL,因此使用时必须判空,new不需要,但是new需要捕获异常。
[C++进阶]继承详解 class +派生类:继承方式 +基类string _id;//学号int _major;//专业public://工资char _jnum;//工号学生和老师都有相同的属性:名字,电话号码,年龄。学生独有的:学号,专业。老师独有的:工资,工号。所以,我们将名字,电话号码,年龄提取出来定义为父类。而学生类和老师类里只声明他们各自独有的属性。在定义子类的时候,我们可以发现继承方式和访问限定符相同。
[奇妙的网络]计算机网络概述(3)---网络体系结构 目录常见的三种结构OSI参考模型TCP/IP参考模型原理参考模型结构分层的必要性物理层数据链路层网络层运输层应用层总结 在前两节种,我们学习了三大交换 和网络的定义分类及性能指标。本篇文章将为大家介绍计算机网络的体系结构。计算机网络的体系结构通常被分为OSI参考模型、TCP/IP参考模型和原理参考模型。下面我们依次介绍。OSI参考模型又称为开放系统互连参考模型,是一个七层协议的体系结构。如图。OSI体系结构是法律上的国际标准结构,但是由于如下原因,OSI体系结构最终失败。失败原因可以归结为如下原因。将OS
[奇妙的网络]计算机网络概述(2) 在计算机的不同发展阶段,人们对计算机网络的定义是不同的,这些定义都反映了当时计算机网络技术的发展水平。在早期,计算机网络的简单定义是:互连、自治的计算机集合。现在对计算机网络的较好定义是:一些通用的可编程的硬件互连而成的。在上述提到的定义中,我们需要对一些概念进行更准确的说明。硬件:一切智能硬件。如:智能手机、智能家电。可编程的:硬件一定包含有中央处理单元CPU。此外,问题很多的小明可能会认为计算机网络就是用来传送数据。实际上,计算机网络能够基于数据传送实现各种各样的应用。
有关单链表的OJ题(1) 在做有关链表相关题目时,一定要进行图像的分析!!!其次所有有关链表的问题,要对链表是否为空、链表是否只有一个头结点进行分析。有关链表的合并通常直接开辟新的链表更加快捷方便。在后续的文章中,我还为问题的很多的小明同学分享有关单链表的题目,关注我,细听下回分解。
二叉树-堆 堆在逻辑结构上是完全二叉树,在物理结构上(存储结构)是数组。堆又分为大堆和小堆。堆只规定父子结点间的大小关系,而不关注兄弟结点的大小关系。因此,堆不一定是有序的。大堆:任何父结点大于等于子结点。小堆:任何父结点小于等于子结点。堆的核心应用有:堆排序,topk问题,优先级队列。
数据结构-初步认识二叉树 树,是一种非线性的数据结构。在定义树的时候,我们通常采用递归的方法进行定义。首先介绍关于树的重要专有名词。为便于直观理解,我们展现图像进行解释。:一个结点含有的子树的个数。如上图中的结点A,我们可以看到通过A衍生出6个子树,因此,结点A的度为6。:度为0的结点。如上图中的B,C等均为叶结点,即该结点后不再有与其连接的结点。:度不为0的结点。如上图中的D等。与前一个结点连接的结点。如上图中,B与上层结点A相连,则B为A的子结点。注意,父子结点必须紧密相连。:具有相同父亲结点的结点。