自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 二叉树的递归&非递归遍历及其他函数功能的实现

二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序,中序,后序以及层序四种遍历方法。因为树的定义本身就是递归定义,所以前三种遍历方式采用递归不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。层序的实现则要用到队列里的“先进先出”的原理来实现。先来介绍一下要实现的函数:templateclass Binary

2016-09-27 23:09:46 403

原创 广义表的简单实现

广义表是一种允许表中有表的非线性结构,在实现广义表的基本操作时需注意以下几个问题:1.就如下图来看,Head为表的头结点,它存储着指向广义表或其子表的地址;Value是广义表的一个值节点;那么Sub的作用是什么呢?又为什么不把子表的Head直接放入Sub里呢?原因在于,我们可以把Sub当成一个子表项,它和value是同一层次的(都可看成是第一层的),通过它的next找到下一个值节点或另一个表项

2016-09-24 14:31:14 922

原创 实现一个栈,要求push,pop,Min的操作时间复杂度为O(1)

问题:实现一个栈,要求实现Push(入栈),Pop(出栈),Min(返回最小值)的操作时间复杂度为O(1).分析:刚看到这个题的时候,用栈来实现Min(返回最小值)的操作,我的第一反应就是必须把栈中的最小值放在top()位                    置,然后根据栈的“后进先出”的道理来实现,但是问题接着就来了。首先,根据元素的不断push,最小值很有可能在

2016-09-11 22:33:10 4206

原创 用栈实现简单的迷宫游戏

迷宫游戏的实现是运用了栈的“后进先出”的原理,究竟如何实现的呢?下来简单的分析一下。比如:下图是一个小迷宫1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 10 0 0 1 1 1 1 1 1 11 1 0 1 1 1 1 1 1 1 //0---表示通路1 1 0 1 1 1 1 0 0 0 //1----表示墙1 1 0 1 1

2016-09-10 16:07:38 3030

原创 数据结构之时间.空间复杂度分析

在很多数据结构的面试题中看似简单,但是对题目的要求却挺高,主要就体现在复杂度分析方面。复杂度又分为时间复杂度和空间复杂度。1.时间复杂度时间复杂度实际就是函数,函数计算执行的基本操作次数 .在进行时间复杂度分析时需注意: 1)时间复杂度强调的是函数执行的操作次数,这里的函数是指数学里面的函数,而不是C语法里的函数;2)在实际中我们通常情况考量的是算法的最坏情况;3)

2016-09-07 22:55:09 10676 2

原创 c++之浅析智能指针

在c++中,当一个函数发现自己无法处理的错误时就抛出异常,然后对其进行捕捉,此时我们设计的执行流就会发生改变,这样会很容易引发内存泄漏的问题。下面就举一个小例子:#includeusing namespace std;void fun(){ int* ptr=new int(1); if(1) { throw 1; } delete ptr;}int main()

2016-09-05 08:39:49 501

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除