
c++
文章平均质量分 65
梦奕
在路上.......
展开
-
使用两个队列实现一个栈,使用两个栈实现一个队列
一、栈与队列的特点 (一)栈 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空 栈,栈又称为后进先出的线性表。 栈的特点:后进先出(LIFO) (二)队列 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作 的特殊线性表。进行插入操作的一端称为队尾,通常称为入队列;进行删除操作的原创 2018-03-10 00:14:18 · 621 阅读 · 0 评论 -
二叉树面试题之三
对于二叉树的其他操作,参考前面两篇文章http://blog.youkuaiyun.com/aaronlanni/article/details/78698559 http://blog.youkuaiyun.com/aaronlanni/article/details/79317946 今天,在介绍一下二叉树中一些其他的内容,详情请看下面 一、判断一个结点是否在二叉树中 在此处,判断一个结点是否在二叉树中,利用结...原创 2018-02-12 21:43:27 · 291 阅读 · 0 评论 -
二叉树的面试题之判断树
在前面,已经介绍过了,有关二叉树中的一些基本操作,如果大家对这些还不是十分熟悉,可以参考上一篇文章,有关二叉树的遍历方式:http://blog.youkuaiyun.com/aaronlanni/article/details/78698559 今天,主要介绍一些二叉树中,常见的一些操作: 一、判断一棵树是否是完全二叉树 完全二叉树:如果一棵具有N个结点的二叉树的结构与满二叉树的前N个结点的结构相同,...原创 2018-02-12 17:30:20 · 1164 阅读 · 0 评论 -
查找一个字符串中第一个只出现两次的字符
问题描述 查找一个字符串中第一个只出现两次的字符。例如:“abcdefabcdefabc”中第一个只出现两次的为“d”,要求时间复杂度为O(1),空间复杂度为O(1) 解决思路 1、建立一个Hash表,用来存储每一个字符出现的次数,即一个字符的大小:256(无符号类型) 2、对Hash表中的每一个的字符进行初始化 3、存储数组中每个字符出现的次数,将其保存在Hash表中 4、从数组的起原创 2018-02-02 14:49:31 · 1726 阅读 · 0 评论 -
将“talk is cheap show me the code”中的空格替换为“&&&”
将“talk is cheap show me the code”中的空格替换为“&&&” 思路: (1)先将字符串中空格的个数计算出来 (2)重新计算数组中的大小 (3)遇到空格,则替换,不是空格,则直接搬移即可 (4)直到原字符串中的所有元素都被替换完全 具体代码如下所示#includeusing namespace std;#include#include//将“原创 2018-02-01 19:56:30 · 515 阅读 · 0 评论 -
实现一个栈,要求实现出栈,入栈,返回最小值的操作,时间复杂度为O(1)
题目:实现一个栈,要求实现出栈,入栈,返回最小值的操作,时间复杂度为O(1) 解法:利用两个栈,一个普通栈s,一个最小值栈min, 入栈:将元素压入到s中,比较s中与min中栈顶元素的大小,如果小,则压入到min中,如果栈中为空,则将栈中s的元素也压入到min中 出栈:空栈—–>直接退出 非空栈—–>如果s中与min中的元素大小一致,则两者均删除,否则,删除s中的即可。 获取最小值:在m原创 2018-01-30 20:23:22 · 1073 阅读 · 1 评论 -
数据结构-----二叉搜索树
一、基本概念 1、二叉搜索树概念 二叉搜索树:又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树 (1)若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 (2)若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 (3)它的左右子树也分别为二叉搜索树 2、形式 二、操作 (一)插入 1、若二叉树为空——>直接插入 2、不为空 (1)找插入结点的位原创 2018-01-27 15:39:55 · 261 阅读 · 0 评论 -
二叉树面试题之二叉树的遍历方式
一、基本概念 1、二叉树的概念 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的二叉树组成(即一个根节点最多只有两个孩子结点)。 2、二叉树的特点 (1)每个结点最多有两棵子树,即二叉树不存在度大于2的结点(分支数最大不超过2) (2)二叉树的子树有左右之分,其子树的次序不能颠倒 3、完全二叉树与满二叉树 (1)满二叉树:在一棵二叉树中原创 2017-12-02 21:41:56 · 3594 阅读 · 0 评论 -
有关模板类----实现Vector的类模板
由上一篇的文章中 ,我们已经知道,模板是一个代码生成器,可以极大效率提高我们的工作效率,实现让编译器为我们产生代码的机制在C++面向对象中,我们在对类的使用上,已经达到了最少80%了,因此,模板类的使用,将极大的提高程序的运行效率,节省程序的运行时间。(一)概念区分类模板:也称类属类或类生产类,允许用户为类定义一种模式,使得类中的某些数据成员,默写成员函数的参数,某些成员参数的返回值,原创 2017-10-28 19:43:29 · 3190 阅读 · 0 评论 -
模板(一)----->函数模板
模板是C++语言的一个重要特性。利用模板机制可以显著减少冗余信息,能大幅度地节约程序代码,进一步提高面向对象程序的可重要性和可维护性。模板是实现代码重用机制的一种工具,他可以实现类型参数化,即把类型定义为参数,从而实现代码的复用,使得程序可以用于处理多种不同类型的对象,大幅度的提高程序设计的效率。原创 2017-10-21 16:08:03 · 417 阅读 · 0 评论 -
深拷贝&浅拷贝&写时拷贝
学习深拷贝与浅拷贝,有助于我们以后的整体学习,因此希望这些内容,可以给大家带去帮助!原创 2017-10-15 23:07:46 · 429 阅读 · 0 评论 -
C++多态(一)
多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。 C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。原创 2017-10-14 21:05:33 · 368 阅读 · 0 评论 -
继承两三事
C++中的继承,是C++三大特性之一,在其中占着非常重要的地位,今天,就让我们来说说继承。原创 2017-10-04 22:45:14 · 454 阅读 · 0 评论 -
实现日期类(日期计算器)
在日常生活中,需要我们计算一些日期,如果一些小的数字相加的话,我们便可以很方便的就计算出来,然而如果需要加上一些特别大的数字的时候,则会很浪费我们的时间,因此,日期计算机的出现,极大的方便了我们的生活,为我们带来极大的便利。 下面,我们将给出这个日期计算机的实现方式,希望大家相互学习,相互鼓励。代码思路:当天满时,则向月进位,当月满时,则向年进位。借位同理(判断是否为有效年)。#define _C原创 2017-09-25 18:37:13 · 946 阅读 · 0 评论