笔记摘抄
文章平均质量分 59
倩影伊人
这个作者很懒,什么都没留下…
展开
-
《程序员面试宝典》 —— 多态的作用
本文摘抄自《程序员面试宝典(第三版)》117~119页,为了便于自己理解,对某些表述做了修改。 虚函数就是允许被其子类重新定义的成员函数。而子类重新定义父类虚函数的做法,称为“覆盖”(override),或者称为“重写”,覆盖的函数必须要与被覆盖函数有一致的参数列表和返回值。这里有一个初学者经常混淆的概念,即覆盖(override)和重载(overload)。覆盖是指派生类重新定义基类的虚函数的转载 2015-07-08 14:18:53 · 558 阅读 · 0 评论 -
惠普打印机网络驱动安装方法
本文内容参考了这篇文章,在此基础上略有修改。&emps; 惠普打印机的驱动安装都挺麻烦的,要对应型号安装后才能正常使用,这里我给大家说说如何简单快速安装打印机驱动。确定打印机ip 首要要确保电脑和打印机在同一网络下,在打印机的设置里可以看到打印机设定的ip。如果同一网段下,有其他电脑已经成功安装了打印机的驱动,也可以通过这台电脑来查看打印机的ip。方法是,查看系统中的网络设备,其中会有打印机选原创 2016-01-18 17:37:52 · 5129 阅读 · 0 评论 -
文件操作——清空缓冲区
在进行输入输出操作或者文件读写时,由于涉及到缓冲区的使用,可能遇到一些问题。 例如,scanf()函数用于从stdin输入信息,在从标准输入缓冲区读取信息时,往往以'\n'作为结束输入的标志,但是换行符'\n'仍然残留在缓冲区中,下次再次从标准输入读取信息时,残留的换行符'\n'会被当做有效信息读取,即,上一次的输入影响了下一次的输入。 再例如,通过 printf()函数向标准输出打印信息时原创 2015-12-10 16:07:05 · 4030 阅读 · 0 评论 -
栈的应用 - 波兰式与逆波兰式的计算
在栈的实现 - C++中,简要介绍了栈的相关特性,及其C++的实现。在栈的应用 - 波兰式与逆波兰式中,借助于栈,实现了中缀表达式到前缀表达式和后缀表达式的转换。 正如已经提到的,因为此前在实现栈的时候,栈的元素类型elementType是通过typedef来指定的,这样虽然也可以根据需要实例化不同类型的栈,但是在一个应用中,只能指定一种元素类型,其使用也就受到了一定的限制。也正是由于这个限制,原创 2015-08-06 11:43:21 · 3365 阅读 · 0 评论 -
栈的应用 - 符号平衡问题
在编程语言中,经常需要判断一些符号是否成对出现,比如<>、()、[]、{},在C++中通常也只有这些对称问题。当然,还有引号的匹配、注释符号的匹配等,在匹配过程中还可能出现转义字符的问题。简便起见,在此只考虑四种括号的匹配问题,并且不考虑转义字符。 借助于栈,可以很方便的判定一个字符串是否是符号平衡的,具体地,从左至右扫描字符串,如果是左括号,则直接入栈,如果是右括号,则栈顶元素退栈,并且将该元原创 2015-08-06 15:41:01 · 1133 阅读 · 0 评论 -
栈的应用 - 波兰式与逆波兰式
上一篇笔记中,简单讲到了栈的特性,并且给出了栈的实现,现在要利用栈来实现表达式的求值问题。 有三个名词与表达式的计算密切相关,分别是中缀表达式、前缀表达式和后缀表达式,它们都是表达式的一种记法,区别是运算符相对于操作数的位置不同:前缀表达式的操作符位于与其相关的操作数之前;中缀表达式的操作符位于与其相关的操作数之间;后缀表达式的操作符位于与其相关的操作数之后。(简而言之,前、中、后就是指操作符所原创 2015-08-05 15:14:07 · 7235 阅读 · 0 评论 -
栈的实现 - C++
栈是一个重要的数据结构,其特性简而言之就是“后进先出”,这种特性在计算机中有着广泛的运用。其实程序员无时无刻不在使用者栈,函数的调用是我们间接使用栈的最好的例子,但是栈在实际中的运用远不止这些,比较经典的应用还包括判断平衡符号、实现表达式的求值,在路径探索中保存路径也是栈的经典应用之一。具体问题具体分析,但是只要满足“后进先出”的特性,都可以应用栈这一数据结构。 栈的基本操作包括入栈(push)原创 2015-08-05 09:01:55 · 1064 阅读 · 0 评论 -
统计数组中元素出现的次数——Java小程序
这段小代码,是在阅读了这篇博文后,作为练习写出来的,原文中,作者做了很详细的分析,在此根据自己的理解整理出了这篇博客。 原题是,给定一个int数组,找出数组中出现次数为奇数的数字。最终决定建立一个以数组元素为索引的数组,数组中的元素的值即为对应的数字出现的次数。由于数字出现的次数仅有奇偶之分,因此可以只用0和1以示区别。 以上所说的解法,最大的问题在于所创建的索引数组的大小该如何确定,如果已原创 2015-07-23 16:43:06 · 7657 阅读 · 0 评论 -
Josephus环
问题描述 已知n个人(以编号1,2,3……,n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从k开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 本题就是约瑟夫斯环的实际场景。要通过输入n,k,m三个数,求出列的序列。比较方便的解法是通过一个无头结点的单项循环链表来完成。如下图所示,假定一开始有10个,从编号为3的人开始报原创 2015-08-14 15:55:06 · 620 阅读 · 0 评论 -
单链表的基本操作
单链表是一个非常常用的数据结构,不得不说,它非常简单,也不得不说,还是有很多细节需要注意的。 一般说来,单链表的单个结点都会被定义为一个struct,结构中则主要包含两个成员,用于存储结点键值的data,和用于指向链表中下一个结点的指针next。为了便于操作,一个链表通常会包含一个头结点,头结点中存储的不是用户数据,而是一些另外的信息,如链表中结点的个数等,头结点的next指针域指向链表中的第一原创 2015-08-12 14:34:52 · 735 阅读 · 0 评论 -
双链表的基本操作
在单链表的基本操作中简单说明了单链表相关的问题,双链表与单链表极为相似,所不同的是,双链表的每个结点除了包含数据域data,指向后继结点的指针域next外,多了一个指向前一结点的指针域pre。这样一来,从某一个结点开始,不仅可以向后遍历链表,还可以向前遍历链表。 对应单链表的基本操作来看,双链表的基本操作同样包括创建链表、插入结点、删除结点、获取链表长度、逆置链表、链表排序、清空链表、销毁链表。原创 2015-08-12 17:04:10 · 605 阅读 · 0 评论 -
二叉堆与堆排序
这篇博文对二叉堆有了很好的解读与阐述,在此根据自己的理解整理如下。二叉堆的定义 二叉堆,本质上是一棵完全二叉树。 二叉堆满足两个特性:父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。每个结点的左子树和右子树都是一个二叉堆(都是大顶堆或小顶堆)。 当父结点的键值总是大于或等于任何一个子结点的键值时,堆为大顶堆(最大堆);当父结点的键值总是小于或等于任何一个子结点的键原创 2015-08-10 16:59:48 · 4961 阅读 · 0 评论 -
Utuntu 12.04 LTS 安装ibus
本文内容与cnblogs上的这篇文章的内容基本一致,只是在此基础上,对于安装过程中遇到的问题进行了补充说明。 IBus(Intelligent Input Bus)是一个输入法框架,一个输入非英语字符的系统。安装了ibus并完成相关的设置后,就可以按照平时的习惯通过Ctrl+Space快捷键方便地在中英文输入法之间切换了。第一步: 安装语言包进入”System Settings” 找到”La原创 2016-01-06 15:22:01 · 588 阅读 · 0 评论