Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

二叉树的前序中序后序遍历(当然是非递归的!)

二叉树的前序中序后序遍历(当然是非递归的!)

二叉树的三种遍历方式一直都是为人津津乐道的面试题,考察一个人对递归的理解让他写个三种遍历方式是最简单的考察方式了,那么考察一个人对递归的理解更加深层次的方式就是让他用循环模拟递归(就是把递归代码转换成非递归),一般想要实现这样的东西是需要栈的,或许说使用栈的结构更加贴合函数栈的压入和弹出,更加好理解递归的三种遍历方式分别为,前序遍历,中序遍历,后序遍历,在考虑完了递归的写法之后,非递归的写法更加难;相关阅读:二叉树的常见问题及其解决程序 http://ww...
智能指针的实现

智能指针的实现

看到了迭代器这里,想到了应该把智能指针的知识总结一下了,我实现了三种智能指针,分别是auto_ptr,scoped_ptr,shared_ptr命名是根据boost库中的智能指针命名的什么是智能指针?智能指针可以帮助你在忘记释放new出来的内存的时候自动帮助你释放内存可以有效避免内存泄漏例如当异常出现,跳转之后。。。内存是应该被释放的呀,一直抓住人家不放会造成内存泄漏哦智能指针就是RAII(资源分配即初始化)一种典型的应用利用类的构造函数和析构函数来进行内...
排序详解(希尔排序,堆排序,归并排序等)

排序详解(希尔排序,堆排序,归并排序等)

今天集中把几种排序的方法列一下,当然最出名的希尔,快排,归并和其优化当然也是满载,说到希尔排序的话,不得不先提到的就是插入排序了,希尔排序就是对直接插入排序的一种优化,下面就是直接插入排序的思想直接插入排序 1 void InsertSort(int *a, size_t size) 2 { 3 assert(a); 4 for (int i = 1; i < size; ++i) 5 { 6 int index = i; 7 int tmp = a...
冒泡排序的实现

冒泡排序的实现

一、冒泡排序简介冒泡排序,重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。二、算法的运作冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的...
Hibernate初步认识

Hibernate初步认识

1.简介在Java开发领域,基于数据库应用的设计与实现一直都是面向关系的,Hibernate对象/关系映射ORM框架的出现为Java面向对象开发提供了易于使用的数据持久化解决方案。 ORM介绍: (a).ORM(Object Relation Mapping)中文翻译成对象关系映射 (b).ORM是一种为解决“面向对象”与“关系数据库”存在不匹配的现象而出现的一种技术 (c).ORM通过使用描述对象和...
jQuery实现内容的显示和隐藏

jQuery实现内容的显示和隐藏

效果描述起初隐藏第八个之后的数字,最后一条 “更多” 除外。点击 “显示全部品牌” ,显示其余全部品牌,对指定品牌特殊显示,并且按钮文字变为 “精简品牌”。点击 “精简品牌” 恢复初始状态。效果展示如下初始情况部分内容被隐藏,如下: 2. 当点击 “显示全部品牌” 时其余内容显示出来,此时按钮的文字变为 “精简品牌...
Ubuntu下C语言程序的开发

Ubuntu下C语言程序的开发

Ubuntu 14.04下,GCC是默认安装的,但刚安装完成的系统中的gcc并不能用来开发,还缺少常用的头文件和库文件,还组要安装build-essential 软件包。操作如下:打开终端,输入如下命令,回车$ sudo apt-get install build-essential由于安装软件需要root权限,因此会提示输入密码,之后系统会自动安装编译所需的相关文件。在安装完成后,在终端下运行 gcc -v可查看gcc的版本。编写hello world ...
Android系统移植与驱动开发概述

Android系统移植与驱动开发概述

一、Android系统架构1)应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是 用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。2)应用程序框架层 应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来...
Spring MVC 4 相关注解的详细讲解

Spring MVC 4 相关注解的详细讲解

首先我是一个初学Spring MVC,抱着去加深印象的目的去整理相关Spring MVC 4的相关注解,同时也希望给需要相关查阅的读者带来帮助。1.@ControllerController控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户。Spring MVC 使用 @Controller 定义控制器,它还允许自动检测定义在类路径下的组件并自动注册。如想自动检测生效,需在xml头文件下引入 sp...
二叉树顺序存储和遍历

二叉树顺序存储和遍历

1 二叉树的存储1.1 顺序存储 使用数组自上而下,自左至右存储完全二叉树上的结点元素,即将完全二叉树上编号为i的结点元素存储在某个数组下标为i-1的分量中,然后通过一些方法确定结点在逻辑上的父子和兄弟关系。 根据二叉树的性质,完全二叉树和满二叉树树采用顺序存储比较合适,树中结点的序号可以唯一地反映出结点之间的逻辑关系,既能节省存储空间,又能利用数组元素下标值确定结点在二叉树中的位置,以及结点之间的关系。 而对于一般的二叉树也必须按照完全二叉树...
使用Java实现简单串口通信

使用Java实现简单串口通信

最近一门课要求编写一个上位机串口通信工具,我基于Java编写了一个带有图形界面的简单串口通信工具,下面详述一下过程,供大家参考 ^_^一:首先,你需要下载一个额外的支持Java串口通信操作的jar包,由于java.comm比较老了,而且不支持64位系统,这里推荐Rxtx这个jar包(32位/64位均支持)。官方下载地址:http://fizzed.com/oss/rxtx-for-java (注:可能需要FQ才能下载)不能FQ的童鞋,mfz-rxtx-2....
Echarts通过Ajax实现动态数据加载

Echarts通过Ajax实现动态数据加载

Echarts(3.x版)官网实例的数据都是静态的,实际使用中往往会要求从服务器端取数据进行动态显示,官网教程里给出的异步数据加载很粗略,下面就以官网最简单的实例为例子,详细演示如下过程:1.客户端通过ajax发送请求;2.服务器端Servlet接收请求;3.生成json数据并返回给客户端;4.客户端接收数据后显示。1.客户端通过ajax发送请求先绘制一个最简单的Echarts图表:(这里就直接贴上代码了,直接用的是官网教程里异步数据加载和更新里的代码)&...
树与二叉树

树与二叉树

一、树的基本概念1.1 树的定义 树是N个结点的有限集合,N=0时称为空树。任何一颗非空树均满足有且仅有一个根结点,其余结点可分为m个互不相交的有限集合,其中每一个集合本身又是一棵树,称为根结点的子树。 树的定义是递归的,一棵树由若干个子树组成,子树又由更小的子树构成。树是一种重要的非线性结构,也是一种分层结构,用来描述客观世界中广泛存在的层次结构。图1 树知识结构1.2 基本术语 树的树形表示:图2 树形结构(1)考虑K结点,根A到结点K的唯...
R语言学习-基础篇

R语言学习-基础篇

从五月10日开始自学R in action,将我的学习所得逐渐发布在博客上。 chapter1.新手上路工作空间:存储着所有用户定义的对象(向量,矩阵,函数,数据框,列表);当前的工目录保存是R用来读取文件和保存结果的默认目录。getwd()显示当前工作目录;setwd(“”)修改当前的工作目录;工作目录的""要换成“/”;历史记录保存在文件.Rhistory中,工作空间保存在文件...
xilinx-arm-linux交叉编译链 安装总结以及相关资源下载

xilinx-arm-linux交叉编译链 安装总结以及相关资源下载

结束了对xilinx-arm-linux交叉编译链安装后,总结一下整个过程,方便后来的研究者们,少走点弯路。关于xilinx-arm-linux交叉编译链的安装,网上一搜一大把,可是有的资料中的资源老旧,有的已经无法下载了。有的方法自己测试后并不能工作,因此,在这里系统的写个说明。首先,说明为什么要装xilinx-arm-linux编译链,我使用的是Xilinx的Zedboard开发。在Zynq上运行Linux后,如果还要对PS操作,有两个办法:(1)、在...
SpringMVC学习--SpringMVC原理

SpringMVC学习--SpringMVC原理

简介 springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。 spring的结构图:mvc在b/s下的应用 1、用户发起request请求至控制器(Controller),控制接收用户请求的数据,委托给模型进行处理; 2、控制器通过模型(Model)处理数据并得到处理结果,模型通常是指业务逻辑; 3、模型处理结果返回给控制器; 4、控制器将模型...
排序算法总结之快速排序

排序算法总结之快速排序

一,快速排序介绍快速排序与归并排序一样,也是基于分治的递归算法,体现在:在每一趟快速排序中,需要选出枢轴元素,然后将比枢轴元素大的数组元素放在枢轴元素的右边,比枢轴元素小的数组元素都放在枢轴元素的左边。然后,再对分别对 枢轴元素左边 和 枢轴元素右边的元素进行快速排序。二,快速排序算法分析①相比于直接插入排序,快排合适于数据量大(上百万)的情形,而插入排序适合于小数据量的情形。因为,在数据量小的情形下,快排的递归是需要一定的开销的。②相比于归并排序,归并排...
<< 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 >>