以图明志

智力开发

实施“番茄工作法”需要注意的一些细节

时间的具体连续性
《拖延心理学》一书也谈到了拖延的一个成因是因为对“时间”这一概念的认知停留在儿童或少年时期。总之,我认为,我们所具有的坏的习性,有很多是因为心智不成熟和知识的匮乏所引起的。而通过具体连续性来看待时间,那么构成时间的是一个一个的连续事件。人们在关注具体事件时,焦虑感明显减轻。

互联网时代

整站遭遇恶劣抄袭复制了,无语和气愤

感谢大家的阅读
本博客建立以来,一直受到用户的好评,在此也非常感谢大家的支持和信任。很多文章被转载,并且不标明出处,我也睁一只眼闭一只眼了,中国大环境就是这样,我一个小博主也没办法。但是没想到竟然有人将本站全盘复制,让我很无语,很气愤,这里向我的读者们诉下苦吧。

互联网时代

中国IT产业的软件质量危机

国内浮躁之风至今不减
IT产业在不断成熟,从1970年后,软件工程从形成雏形到现在,软件行业就在不断的走向成熟。而我们国家的软件行业,却还在淘气着。我很佩服那些加班加点的同事们,在短短的一个月就能开发出那么多代码的产品,然而成功居少数,大多数最后的路走向更加漫长的荆棘。劣质产品带给开发人员的加班,也带给售后人员一刻钟也不停的投诉电话。

IT人家

通过人格的大五模型来判断好员工

组织行为学对项目管理的意义
人格可以理解为情绪,思维方式,习惯的复合体,具体左右一个人对周围人事所作出的反应。在组织行为学里有好多对人格特质进行描述的模型,其中比较有名的一个是大五模型(五维度人格模型)。一个是看人要看全,看深。那怕最简单的把上述五个维度列个表,也可以避免很多偏见。

数据结构

[专题] 链栈:栈的链式存储结构

链栈的结构体定义
前面讲完了栈的顺序存储结构,我们现在来看看栈的链式存储结构,简称为链栈。链栈是没有附加头结点的运算受限的单链表。栈顶指针就是链表的头指针。单链表有头指针,而栈顶指针也是必须的,那干吗不让它俩合二为一呢,所以比较好的办法是把栈顶放在单链表的头部。

数据结构

[专题] 链栈的进栈操作

两个步骤即可完成
链栈的操作绝大部分都和单链表类似,只是在插入和删除上,特殊一些。假设元素值为e的新结点是s, top为桟顶指针……那么我分析下过程,首先开辟一个内存空间给 s,然后 s的data就是e,再将新结点s 的后继赋值为当前结点 S->top。最后将栈顶指针指向结点 s。

数据结构

[专题] 链栈的初始化与遍历

链栈的基本操作
我们在定义完一个数据结构的结构体之后,需要初始化才能使用。比如顺序栈的初始化,也就是构造一个空栈就行了。那么链栈如何初始化呢?链栈初始化的目标也是要构造一个空栈。根据结构体定义,空栈是什么一个状况呢?就是栈的count = 0,并且栈的 top 为 null。所以知道这两点,我们就可以写出链栈的初始化函数了。

数据结构

[专题] 链栈的出栈操作

其实就是删除结点而已
前面讨论了链栈的进栈操作,这里接下来讨论链栈的出栈操作。至于链栈的出栈pop操作,也是很简单的三句操作。假设变量p用来存储要删除 的栈顶结点,将栈顶指针下移一位,最后释放p即可。首先设定一个工作结点 p,并且将栈顶结点赋值给它。然后将栈顶指针下移一位,指向下一结点。代码表示为 S->top=S->top->next;

数据结构

[专题] 链栈的置空操作与判断链栈是否为空

与单链表的置空操作相同
判断链栈是否为空很简单,还记得结构体定义时的那个 count 吗?如果那个 count 为0,就说明链栈为空。置空链栈就没有置空顺序栈那么简单了。置空顺序栈只要一步 S->top=-1; 即可,但是对于链栈却不是那么回事了。方法是设置两个工作结点,开始循环。在释放p之前,让q成为p的后继。还是那个比喻,在皇帝死之前,册封皇子。free(p); 皇帝死了,p=q; 皇子就成了新皇帝。

PHP服务器脚本

[专题] PHP Predefined Interfaces 预定义接口

6个迭代器接口介绍
SPL提供了6个迭代器接口:Traversable,遍历接口(检测一个类是否可以使用 foreach 进行遍历的接口)。Iterator,迭代器接口(可在内部迭代自己的外部迭代器或类的接口)。IteratorAggregate,聚合式迭代器接口(创建外部迭代器的接口)。

数据结构

[专题] 为什么要使用栈这种数据结构

缩小思考范围,聚焦问题核心
栈的引入简化了程序设计的问题,划分了不同关注层次,使得思考范围缩小,更加聚焦于我们要解决的问题核心。反之,像数组等,因为要分散精力去考虑数组的下标增减等细节问题,反而掩盖了问题的本质。所以现在的许多高级语言,比如Java、C#等都有对栈结构的封装,你可以不用关注它的实现细节,就可以直接使用Stack的push和pop方法,非常方便。

数据结构

[专题] 递归,栈的重要应用之一

了解递归的一些细节
栈有一个很重要的应用:在程序设计语言中实现了递归。那么什么是递归呢?当你往镜子前面一站,镜子里面就有一个你的像。但你试过两面镜子一起照吗?如果A、B两面镜子相互面对面放着,你往中间一站,嘿,两面镜子里都有你的千百个 “化身”。一连串的“像中像” 这是一种递归现象。

数据结构

[专题] 栈是如何实现递归的

递归与栈一些不得不说的事
在高级语言中,调用自己和其他函数并没有本质的不同。我们把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称做递归函数。迭代和递归的区别是:迭代使用的是循环结构,递归使用的是选择结构。递归能使程序的结构更清晰、更简洁、更容易让人理解,从而减少读懂代码的时间。

数据结构

鸟瞰数据结构的知识点全貌

扯扯数据结构的概念点
数据结构是算法的基石,算法是软件灵魂。数据结构的很多概念真的是很莫名其妙,很多坑爹的定义,笔者开始很搞不明白,为什么学数据结构?为什么用哪个拗口词语?这些概念到底用在什么地方?笔者试图用自己简单的话来阐述这些问题,希望能对这些感觉不是很好理解的同学有帮助。

数据结构

[专题] 接触后缀表达式(逆波兰表示法)

逆波兰表示法的起因
栈的现实应用也很多,我们再来重点讲一个比较常见的应用:数学表达式的求值。20世纪50年代,波兰逻辑学家Jan tukasiewicz想到了一种不需要括号的后缀表达法,我们也把它称为逆波兰(Reverse Polish Notation, RPN)表示。这样的表达式称为后缀表达式,叫后缀的原因在于所有的符号都是在要运算数字的后面出现。

数据结构

[专题] 图解后缀表达式的计算过程

了解后缀表达式的工作原理
为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果20的。后缀表达式:9 3 1-3*+ 10 2/+,规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。
2 / 4 首页 < Prev 1 2 3 4 Next > 尾页 页码: