自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 二叉树的三种遍历递归法和非递归法(前序、中序、后续)

二叉树的前序遍历:根->左->右1、递归方法:思路:我们知道递归就是将一个大问题不断分成子问题进行处理,当达到递归终止条件时,跳出。因此在前序遍历中我们把每一个节点分成三部分,即:根节点、左子树、右子树。例如下面这个二叉树递归过程:转化成代码代码:void PrevOrder() //1、递归法 { Node* root = _Root; _PrevOrder(roo

2017-05-29 12:51:16 572

原创 走迷宫问题:回溯法和递归法

问题描述:给一迷宫表个和入口位置,找出并打印出从入口到出口的路径注意:迷宫表格我们可以用一个二维数组来表示,但是如果用二维数组表示,将唯一固定,迷宫趣味性大大降低并代码长度增大;因此,我们最好是将迷宫表格存储在一文件中,在实现时再从文件中读取;采用模板来实现可实现复用性;设计分析:1、我们可沿着入口逐一方向进行试探,若有通则继续前进,全不通,回溯法则回溯,递归法则到达递归终止条件。2、采用栈来记录走

2017-05-25 15:44:48 4858

原创 树与二叉树初识

树相关的一些概念。树是n(n>=0)个有限个数据的元素集合,形状像一颗倒过来的树。节点:结点包含数据和指向其它节点的指针。根节点:树第一个结点称为根节点。结点的度:结点拥有的子节点个数。叶节点:没有子节点的节点(度为0)。父子节点:一个节点father指向另一个节点child,则child为孩子节点,father为父亲节点 。兄弟节点:具有相同父节点的节点互

2017-05-25 12:13:08 399

原创 fork()函数和linux进程号

pid_t 类型——定义进程号类型;实际类型:我们可找到其定义:1、在centos6.5的/usr/include/sys/type.h中可找到其定义:总结:pid_t 就是 int 型2、fork()函数创建子进程      需要的头文件:#include和#include      功能:从一个已经存在的进程中创建新进程,原进程称父进程,新进程称子进程

2017-05-25 10:08:06 654

原创 模拟实现队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。模拟代码:#include using namespace std;#include templatestruct QueueNode{ T _Data;

2017-05-24 11:09:25 727

原创 队列和栈相关面试题总结

1、实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)??分析:     出栈和入栈根据栈自身提供的接口不难实现,而返回最小值,我们知道遍历一次栈即可找到最小值,但是对栈的操作只能在栈顶,因此,要遍历势必要改变栈的状态,而且还要求时间复杂度为O(1),即更不能遍历栈。我们可以利用两个栈同时进行操作,一个是我们放数据的栈,而另一个栈顶专门放

2017-05-23 23:49:51 583

原创 栈的模拟实现

#include using namespace std;#includetemplateclass Stack{public: Stack() :_arr(NULL) ,_size(0) , _capacity(0) {} void Push(const T& x) { _checkcapacity(); _arr[_size] = x; _size

2017-05-23 20:44:22 489

原创 智能指针发展

智能指针就是智能/自动化的管理指针所指向的动态资源的释放。并且可以向指针一样使用。1、早期auto_ptr—是一种失败的设计,有设计缺陷为了解决对象中指针的重复释放,采用管理权转移的方式。即在解决对象的赋值、拷贝构造时,比如:a = b;将a的地址空间释放,然后将b.ptr的指针赋给a.ptr,最后将地址空间的管理权交付于a.ptr,并将b.ptr致null。因此,在赋值过后,将不能使用原来指针,缺

2017-05-11 20:03:06 381

原创 c++模板之萃取

假如,我们要设计一个_Copy的模板函数。我们为了提高效率采用memcpy,可以这样写:template<typename T>T* _Copy(T* dest, T* src, size_t n){ memcpy(dest, src, sizeof(T)*n); return dest;}我们知道一般的类型(比如int,float,double,char等)进

2017-05-04 11:28:36 1024

原创 进程之task_struct

进程可以把进程当成一组元素组成的实体,进程的两个基本元素程序代码和与代码相关的数据集。假设处理器开始执行这个程序代码,且我们把这个执行实体称为进程。那么,在程序执行时,任意给定一个时间,进程都可以唯一的被表征为以下元素:1、标识符:跟这个进程相关的唯一标识符,用来区别其他进程2、状态:进程此时的状态3、优先级:相对于其他进程的优先级4、程序计数器:程序中即将被执行的下一跳指令的地址5、内存指针:包括

2017-05-03 19:12:36 643

Linux C一站式学习

学习linux必看书籍,本书有两条线索,一条线索是以Linux平台为载体全面深入地介绍c语言的语法和程序的工作原理,另一条线索是介绍程序设计的基本思想和开发调试方法

2018-08-13

空空如也

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

TA关注的人

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