1.栈的定义 栈是一种和列表类似的数据结构,可以用它来解决很多的编程问题,栈是一种高效的数据结构,因为数据只能在栈的顶端添加或者删除,所以这样的操作很快而且容易实现。 栈是一种特殊的列表,站内的元素只能拖过列表的一端进行访问,这一端陈伟栈顶。一叠盘子是最常见的栈结构,只能从顶部取盘子,洗好的盘子也只 ...
分类:
编程语言 时间:
2016-08-24 00:49:43
阅读次数:
240
实习终于结束了,好久没有总结编程问题了,因为最近真是没怎么写程序。 今天做华为的火车进站问题,这是一道看似像全排列,其实是栈的问题。 看了一些网上的写法,掌握了一种思路,也是种投机取巧的方法: 先产生序列的全排列,然后再全排列里面去除不可能的出栈顺序。 1.全排列很好产生,用stl里面的next_p ...
分类:
其他好文 时间:
2016-08-20 23:08:00
阅读次数:
205
设计模式是什么? 设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码。反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。设计模式不会绑定具体的编程语言。一个好的设计模式应该能够用大部分编程语言实现 ...
分类:
编程语言 时间:
2016-08-17 21:04:26
阅读次数:
263
C++提供了一组功能强大的库,这些库提供了很多常见编程问题的解决方案以及简化其他问题的工具string类为将字符串作为对象来处理提供了一种方便的方法。string类提供了自动内存管理动能以及众多处理字符串的方法和函数。例如,这些方法和函数让您能够合并字符串、将一个字符串插入到另一个字符串中、反转字符 ...
分类:
编程语言 时间:
2016-07-17 12:55:26
阅读次数:
163
面向对象编程强调的是程序如何表示数据。使用 OOP 方法解决编程问题的第一步是根据它与程序之间的接口来描述数据,从而指定如何使用数据。然后,设计一个类来实现该接口。一般来说,私有数据成员存储信息,公有成员函数(又称为方法)提供访问数据的唯一途径。类将数据和方法组合成一个单元,其私有性实现数据隐藏。通 ...
分类:
编程语言 时间:
2016-07-08 21:34:28
阅读次数:
181
Monad是非常强有力的概念,在介绍Monad是什么和如何工作的之前,我们应该先确认Monad能解决什么问题。Monad是各种编程问题的的 meta solution,它不是某种特定问题的解决方案,我们将通过一些例子来介绍Monad. Monad是使用amplified type组合函数的模式,am... ...
分类:
其他好文 时间:
2016-06-28 00:40:22
阅读次数:
193
目标.
在本章中,你将学习到:
图相关的概念
实现图
应用图解决编程问题
考虑一种情况:
你必须访问一系列城市并且在结束的时候返回原来的城市。
对此,你需要:
找到最短或花费最少的路径,它开始于当前的城市,访问每一个预期的城市,然后返回原来的城市。
你如何解决此问题?
要解决此问题,你需要:
确定属于不同城市的信...
分类:
编程语言 时间:
2016-06-15 08:06:01
阅读次数:
241
在本章中,你将学习:
执行双链接列表
执行循环链接列表
应用链接列表以解决编程问题
现在,考虑一个示例,您需要以降序的方式显示这些数字。
如何解决此问题?
每一个节点链接到序列中的下一个节点,这意味着您只能以正向遍历列表,这样的链接列表称为单链接列表。要以降序的方式显示数字,您需要反转此链接列表。
运用算法以反转单链接列表。
1.声明三个变量...
分类:
编程语言 时间:
2016-06-12 02:04:57
阅读次数:
271
目标
在本章中,你将学到:
识别栈的特性
实施栈
运用栈来解决编程问题
什么是栈?
栈就是一个只能访问其末尾数据的数据结构,这一端也叫做顶部。
数据仅能在顶部进行插入和删除操作。
最新插入的数据将被最先删除。
因此,栈也被称为后进先出数据结构(Last-In-First-Out)。
...
分类:
编程语言 时间:
2016-06-12 01:58:13
阅读次数:
221
这个专栏开始介绍一些《ACM国际大学生程序设计竞赛题解》上的竞赛题目,读者可以配合zju的在线测评系统提交代码(今天zoj貌似崩了)。 其实看书名也能看出来这本书的思路,就是一本题解书,简单暴力的通过题目的堆叠来提升解决编程问题的能力。 那么下面开始探索吧。 zoj1037: BackgroundF ...
分类:
其他好文 时间:
2016-06-01 19:49:08
阅读次数:
136