栈是一种特殊的线性表,它只在线性表的一端进行插入和删除操作。栈中允许插入、删除的这一端称为栈顶,另一个固定端称为栈底。当表中没有元素时称为空栈。其特点是先进后出或后进先出。 队列是一种只允许在标的一端插入,在另一端删除的存取首先得线性表。允许插入的一端称为队尾,允许删除的一端称为对头;不含...
分类:
其他好文 时间:
2015-08-10 22:01:47
阅读次数:
122
对于栈的定义,前人之述备矣。我实现的是一个stack容器类,支持push,pop,top,size,empty,clear和copy construction操作。主要的实现思路是,先写出几个支持基本操作的类_stack_impl,然后再写一个包装类stack,包装基本操作,再实现size,copy...
分类:
编程语言 时间:
2015-08-10 21:52:42
阅读次数:
132
最近接触OOP面向对象,学习了OOP、this、super、package、extends还有override,整体来说如果不清楚内存的流程的话,对这些知识会很混淆,在老师的帮助下,花了一张图,能清楚的标示出代码在内存中的流程内存大致分为四个区域:1、静态数据区 2、栈 3、堆 4、静态数据...
分类:
编程语言 时间:
2015-08-10 21:50:02
阅读次数:
115
前言嵌入式工程师们免不了和堆栈打交道,深入理解了这两个东西,才能从代码编写时就考虑清楚内存管理,避免到后期出现各种莫名其妙的问题。最近在使用CC2530时也遇到了一些问题,怀疑跟栈空间溢出有关,于是做了一次梳理。可能有些理解还不到位,等了解了再修正。本文是以CC2530为例做了测试,我们可以借鉴到其他单片机上。所谓栈空间,就是一块内存空间。而溢出,就是使用的内存区域超过了这块空间。占用栈空间的是局部...
分类:
其他好文 时间:
2015-08-10 20:12:54
阅读次数:
127
我开发的worker,每隔几个月线上都会阻塞一次,一直都没查出问题。今天终于了了这个心结。把解决过程总结下和大家分享。
首先用jstack命令打出这个进程的全部线程堆栈。拿到线程dump文件之后,搜索自己的worker名字。
"DefaultQuartzScheduler_Worker-10" prio=10 tid=0x00007f55cd54d800 nid=0x3e2e wait...
分类:
编程语言 时间:
2015-08-10 20:08:46
阅读次数:
166
/*程序过程:1。创建一个根视图,一个二级视图2,根视图NavigationItem.title = Root二级视图NavigationItem.title = Second根视图NavigationItem.rightButton入栈二级视图3, 二级视图中创建三个buttonbutton一bu...
分类:
移动开发 时间:
2015-08-10 19:54:53
阅读次数:
181
#include #include using namespace std;bool IsPopOrder(int *pPush, int *pPop, int length){ if(NULL == pPush || NULL == pPop || 0 >= length) return f...
分类:
其他好文 时间:
2015-08-10 19:52:21
阅读次数:
165
题目大意:给你一个无向图,问加一条边之后最少还剩下几座桥。(注意重边处理)分析:其实当我们把边双连通分量给求出来之后我们就能将连通块求出来,这样我们就可以重新构图。重新构造出来的图肯定是一颗树了,那么问题就转化为求树的哪两个节点的距离最长。我们可以随便找一个点S开始BFS, BFS到这个点最远的那个...
分类:
其他好文 时间:
2015-08-10 19:25:41
阅读次数:
133
这个应该是科班出身的程序员在学习离散数学的时候都学过的知识点。 大家或许自己用笔写出后缀表达式很容易,但是用代码实现就感觉无从下手,就只知道用栈,究竟如何用。 public?class?Caculator?{
private?...
分类:
编程语言 时间:
2015-08-10 18:19:52
阅读次数:
145
方法执行原理:(方法不调用不执行,调用才执行)* 方法在调用的这时候,才会在内存中划分空间* 方法在调用的时候,是在栈内存中分配的空间(jvm有一块内存是栈内存)* 函数/方法目的: 还是为了代码重用* 相同的类型的操作,不容重复的写代码* 函数/方法:就是一段有名字的代码段* 方法的定义* [方....
分类:
编程语言 时间:
2015-08-10 17:35:26
阅读次数:
106