二叉树的遍历方式基本就是前序遍历,中序遍历,后序遍历和层次遍历。从代码的角度来说,前三种最简单的就是用递归了,代码会非常简洁。但是递归有一个缺陷,就是当二叉树的节点非常多的时候,层次深的递归会不停的进行程序的压栈和出栈操作,效率比较低。这里就不写递归算法了,只写四种遍历的非递归算法。
先定义二叉树的节点如下:
/**
* Definition for binary tree
* pub...
分类:
编程语言 时间:
2014-12-15 13:47:08
阅读次数:
305
1.c#的托管代码和非托管代码
c#有自己的内存回收机制,所以在c#中我们可以只new,不用关心怎样delete,c#使用gc来清理内存,这部分内存就是managed memory,大部分时候我们工作于c#环境中,都是在使用托管内存,然而c#毕竟运行在c++之上,有的时候,(比如可能我们需要引入一些第三方的c++或native代码的库,在Unity3d开发中很常见)我们需要直接在c#中操纵非托管...
分类:
编程语言 时间:
2014-12-15 13:47:41
阅读次数:
257
批渲染(Batch)
batch render 是大部分引擎提高渲染效率的方法,基本原理就是通过将一些渲染状态一致的物体合成一个大物体,一次提交给gpu进行绘制,如果不batch的话,就要提交给很多次,这可以显著的节省drawcall,实际上这主要节省了cpu的时间,cpu从提交多次到提交一次,对gpu来说也不用多次切换渲染状态。当然能batch的前提一定是渲染状态一致的一组物体。
Unity...
分类:
编程语言 时间:
2014-12-15 13:47:08
阅读次数:
221
1、二叉树定义:
typedef struct BTreeNodeElement_t_ {
void *data;
} BTreeNodeElement_t;
typedef struct BTreeNode_t_ {
BTreeNodeElement_t *m_pElemt;
struct BTreeNode_t_ *m_pLeft;
struct B...
分类:
编程语言 时间:
2014-12-15 13:45:29
阅读次数:
223
本文翻译自https://wildlyinaccurate.com/understanding-javascript-inheritance-and-the-prototype-chainJavascript里的一切几乎都是对象,每一个对象都有一个链接到其他对象的内部属性,我们称之为prototyp...
分类:
编程语言 时间:
2014-12-15 13:41:34
阅读次数:
252
strstr()函数源码/* 得到s1中第一次包含s2字符串的位置指针。*/#include char * my_strstr(const char *s1,const char *s2){ if (*s1 == 0) { if (*s2) return (char *) NULL; return ...
分类:
编程语言 时间:
2014-12-15 13:39:42
阅读次数:
178
package com.xxx.xxx;/** * 1.直接选择排序 * 2.反转排序 * @author Administrator * */public class demo11 { //直接选择排序 /** * 直接选择排序比冒泡排序快一些 * 基本思想:将指定排序...
分类:
编程语言 时间:
2014-12-15 13:37:59
阅读次数:
175
为myeclipse和eclipse安装Java反编译插件插件所需包1.解压jad1.5.8g.zip.将jad.exe放到jre的bin目录下,下载地址:http://ishare.iask.sina.com.cn/f/15708995.html?from=dl如笔者在D:\program fil...
分类:
编程语言 时间:
2014-12-15 13:37:31
阅读次数:
253
对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中。JVM停止之后,这些状态就丢失了。在很多情况下,对象的内部状态是需要被持久化下来的。提到持久化,最直接的做法是保存到文件系统或是数据库之中。这种做法一般涉及到自定义存储格式以及繁琐的数据转换。对象关系映射(Object-relat...
分类:
编程语言 时间:
2014-12-15 13:38:24
阅读次数:
260
为了方便以后直接拿来用,所以这次总结一下,有些还没有了解其意。 1 using UnityEngine; 2 using System.Collections; 3 /// 4 /// 获取当前设备信息 5 /// 6 public class GetSystemInfo : MonoBehav.....
分类:
编程语言 时间:
2014-12-15 13:34:34
阅读次数:
793
理解:方法用()调用。要更抽象的看,方法就是个变量名,“()”是调用方法的简单表述(也要为了让编译器识别),调用方法是操作的结果。eg: a = 1; a是个变量名, “=” 是赋值的简单表述(只是我们已经接触语言太久,潜意识就已经认为=就是赋值。但其实把“=”换成@,换成“赋值”,又有什么不同呢....
分类:
编程语言 时间:
2014-12-15 13:31:47
阅读次数:
173
package com.xxx.xxx;import java.util.Arrays;public class demo10 { /** * 1、数组查询 * 2、冒泡数组排序 * @param args */ public static void ma...
分类:
编程语言 时间:
2014-12-15 13:29:40
阅读次数:
223
基础当谈到释放不再使用的内存,垃圾回收已经在很大程度上取代了早期技术,比如手动内存管理和引用计数。这是件好事,因为内存管理令人厌烦,学究式地簿记是计算机擅长的,而不是人擅长的。在这方面,语言的运行时环境比人强。现代的垃圾回收非常高效,远远超过早期语言中典型的手工分配。通常,具有其它语言背景的人只盯着...
分类:
编程语言 时间:
2014-12-15 13:26:50
阅读次数:
169
BZ今天整理下QQ邮箱(平时不用的),发现邮件里有这个,感觉挺好的,最近也比较颓废,每天这样小小的动动手挺好的,就想从今天开始每天都练一下。BZ的python是个小白哈!源论坛地址:http://www.pythonla.com/thread-3.html 注明下出处哈!!!2014.12.15题目...
分类:
编程语言 时间:
2014-12-15 13:24:32
阅读次数:
192
Java与Internet客户/服务器系统核心思想:* 系统具有一个中央信息存储池,用来存储某种数据。* 它通常存在于数据库中,根据需要将它分发给某些人员或机器集群。* 信息存储池、用于分发信息的软件和信息与软件所驻留的机器或机群总称为服务器。* 主流在用户机器上的软件与服务器进行通信,疑惑去信息....
分类:
编程语言 时间:
2014-12-15 13:25:11
阅读次数:
246
package com.xxx.xxx;import java.util.Arrays;public class demo9 { /** * 1、数组排序 * 1.1、 Arrays.sort(Object) 排序算法是根据字典进行排序,数字排在字母...
分类:
编程语言 时间:
2014-12-15 13:24:14
阅读次数:
255
package com.xxx.xxx;public class demo1 { /** * java 是由 package 、import 、class 组成 * Java是 先 编译 后执 行 * 用 cmd 执行时, java com.xxx.xxx.demo1 * @param ar...
分类:
编程语言 时间:
2014-12-15 13:24:00
阅读次数:
141