- 博客(45)
- 资源 (15)
- 收藏
- 关注
原创 呆萌数据结构 | 04 队列
原文来自 萌一小栈生活中的一些排队行为,基本上都是队列的形式。这篇博客涉及的概念有 队列,循环队列,优先队列,双端队列。很多编程语言已经内置了队列结构,在实际项目中可以直接使用。这篇文章里的代码实现,主要用做原理理解。拿超市买单为例,买完东西,一般会找一个结账台排队,等待结账。如果前面已经有人在排队,那你肯定是排在当前队伍的最后面,如果再来人,肯定是排在你的后面,依次往后排。每当有一个顾客...
2020-01-10 18:16:57 1007
原创 呆萌数据结构 | 03 堆栈
原文来自 萌一小栈有一堆书,一本叠一本地放入箱子里,最后放入的,一定是在最上面,对不对。取书的时候,规定只能从上面一本一本地取,如果要拿最先放入箱子里的那本书,也就是最下面的那本书,只能先把上面的拿出来。什么是堆栈(Stack)上面说的就是我们今天要讲的堆栈,也可以简单叫做栈。堆栈是很常用很基础的数据结构。堆栈涉及到的概念如果下。栈顶,就是最上面的一个元素。压栈(Push),就是将一...
2020-01-10 18:16:29 964
原创 呆萌数据结构 | 02 链表
原文来自 萌一小栈什么是链表链表和数组一样,是一种线性的数据结构,由一个一个节点构成,节点中存放着数据,以及指向下一个或上一个节点的指针,通过指针,将节点链接在一起,构成整个链表结构。不同于数组,链表在内存中并不是连续的存储空间。为什么要用链表?或者说链表有哪些优点我们知道,数组是很方便的数据结构,但是数组有一些局限性。必须事先知道要分配多少内存空间。插入和移除是很耗费性能的操作,因为...
2020-01-10 18:15:58 947
原创 呆萌数据结构 | 01 数组
原文来自 萌一小栈数组,在数据结构中,是很基础,也很常用的一个,在很多很多业务中,都能看到它的身影。数组很简单,在不同的编程语言中,操作方式,也几乎都是类似的。那数组是什么呢?简单来说,就是在内存中分配一块连续的空间,用来存储相同类型的元素。使用索引,可以直接访问某一个元素的数据。大多数编程语言,数组的索引是从0开始的。数组也分为一维数组,和多维数组。就像excel中的表格,一行数据,就可...
2020-01-10 18:09:53 922
原创 一个不用背单词的高效英文学习法
原文来自 萌一小栈翻译自 English Immersion Reading: A Powerful and Effective Way to Learn你觉得英文阅读很无聊吗?你是否一直在寻找一种能让阅读更有趣,更高效地方式?接着往下看,你将会爱上 沉浸式阅读我们通过阅读和听力掌握一种语言,而不是通过单纯地学习语法和记忆单词。我们可以很熟练地说一种语言是因为我们听的多,读的多...
2020-01-09 16:52:12 2352
原创 Chapter 1 数学知识
映射,逆映射,双射映射可以理解为程序里的函数,传入一个参数,返回一个值。逆映射可以理解为反函数,函数A,传入a返回b,函数A的逆函数,传入b返回A。双射,传入a返回b,传入b返回a。区间(0,1) 开区间,不包括端点0,1[0,1] 闭区间,包括端点0,1对数logax\log_axlogax 的意思是有一个底数a,以a为底数的x的对数。通俗来讲,就是描述a的多少次方为...
2018-11-04 02:16:52 245
原创 Unity3D 获取主窗口句柄
using System;using System.Diagnostics;using System.Runtime.InteropServices;using System.Windows.Forms;public class C { public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam); [DllImp
2015-12-28 19:18:16 9725 2
原创 Python 批量下载xkcd漫画
#coding=utf-8import urllibimport re#start page numberstart = 1#end page numberend = 1613prevUrl = 'http://xkcd.com/'#download html filedef getHtml(url): page = urllib.urlopen(url)
2015-12-20 11:48:13 840
转载 Newtonsoft.Json解析数组的小例子
HttpWebRequest request = (HttpWebRequest)result.AsyncState;HttpWebResponse response = (HttpWebResponse)(request.EndGetResponse(result));stream = response.GetResponseStream();StreamReader reader = n
2015-10-27 15:12:11 1409
原创 Untiy Shader - 纹理贴图滚动
滚动纹理,可以实现一些如瀑布,河流,熔岩流等效果,本质上就是UV坐标的偏移,在Unity中新建一个Shader,然后修改成下面代码的样子,新建一个材质,选择此shader,赋予一张贴图,然后将材质应用于一个mesh上,运行即可看到效果Shader "Custom/UVOffset" { Properties { _MainTint("Diffuse Tine",Color)
2015-06-15 20:18:22 2531
原创 Unity3D NotificationCenter
NotificationCenter封装了Unity3D的Message机制,直接将 NotificationCenter.cs 脚本拖到项目中就可以用了,我们建立三个游戏对像A ,B,C,然后分别赋予它们脚本AS,BS,CS,这三个脚本中的内容如下AS BS CS: void start(){ NotificationCenter.DefaultCenter.
2013-09-11 20:23:07 1791
原创 Unity3d JDK配置
下载JDK,并安装,新建系统变量 JAVA_HOME -> C:\Program Files\Java\jdk1.7.0_07新建系统变量 classpath -> .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarpath 系统变量中添加 -> %JAVA_HOME%\bin;%JAVA_
2013-09-08 17:37:23 3234
原创 Ubuntu 环境变量各配置文件
1. /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.2. /etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量 3. ~/.profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输
2013-07-11 22:20:14 963
原创 Unity3D 主角移动到鼠标点击处
#pragma strictvar moveSpeed : float = 5;private var targetPos : Vector3 = Vector3.zero;private var direction : Vector3 = Vector3.zero;private var controller : CharacterController;function Start
2013-07-08 18:32:07 1822
原创 Ubuntu 13.04 安装 OpenGL
sudo apt-get install build-essential sudo apt-get install libgl1-mesa-devsudo apt-get install libglu1-mesa-dev sudo apt-get install freeglut3-dev测试程序#include void init(void){ glClea
2013-05-24 00:20:06 1071
原创 Ubuntu 13.04 双显卡安装NVIDIA GT630M驱动
安装 bumblebee 以管理双显卡,下面命令会自动安装NVIDIA显卡驱动sudo add-apt-repository ppa:bumblebee/stablesudo apt-get updatesudo apt-get install bumblebee bumblebee-nvidia安装成功后,重启电脑查看显卡状态lspci | grep VG
2013-05-23 23:59:04 3670
原创 同余幂算法
求 b^n mod m ,其中 b n m都是大整数#include int GetHighBitPos(int n){ int pos = 31; while(pos >= 0){ if((1 << pos) & n){ return pos; } --pos; } retu
2013-05-13 11:22:46 1493
原创 malloc free 深入学习
#include #include int main(){ int * iptr = (int *)malloc(10 * sizeof(int)); for(int i = 0; i < 10; ++i){ iptr[i] = i * 1000; } printf("%p\n",iptr); iptr = iptr + 3;
2013-05-12 08:21:38 922
原创 同余的应用
1. 散列函数可以为计算机文件分配内在地,最常用的散列函数之一是 h(k) = k mod m,m是可用内内存的数目例如,以客户的社会安全号作为记录,当 m= 111 时,h(064212848) = 064212848 mod 111 = 14h(037149212) = 037149212 mod 111 = 65由于散列函数不是一对一的,有可能多个记录分配到同一个内
2013-05-07 08:54:09 1381
原创 Ubuntu 13.04 X64 安装iNodeClient问题
1. 需要选安装ia32-libs,如果sudo apt-get install ia32-libs提示找不到软件包,就先 sudo apt-get update 一下,然后再安装就可以找到了2. 安装完后,运行iNodeClient目录下的,iNodeClient.sh,会提示一些libtiff 和 libjpeg等so文件找不到,ubuntu 13.04里面的这些库文件不叫这个名字,可以l
2013-05-06 23:43:23 1161
原创 C语言实现通用数据类型栈结构
Stack.htypedef struct { void *elems; int elemSize; int logicalLen; int allocLen;}Stack;void StackNew(Stack *s,int elemSize);void StackDispose(Stack *s);void StackPush(Stack *s,v
2013-04-27 00:41:49 1337 1
原创 C语言 static
C语言中用 static 定义一个函数或变量,是将函数或变量的作用域限制在本文件内,在多文件编程中,例如在A.c B.c 内各定义Swap()函数,如果不用static,在连接的时候会出错,因为编译器不知道程序要调用的是哪一个Swap()函数,加上static ,就只有本源文件中的函数可以调用用static定义的变量或函数,在编译的时候不会产生冲突。
2013-04-26 23:46:40 759
原创 使用Git --- 创建第一个项目
(以下内容都是在 Ubuntu 12.10 X64 的Shell下进行的) 安装完Git后,需要简单设置一下git config --global user.name "linkrules"git config --global user.email "0x535946@gmail.com"上面两个命令, user.name 和 user.email两个变量分别说明版本历史上的一个修
2013-04-14 21:30:47 999
原创 Common Lisp --- 计算 3x+1 问题
(defun x-test (x) (when (not (= x 1)) (cond ((= 1 (mod x 2)) (format t "3*~d+1=~d~%" x (+ 1 (* 3 x))) (x-test (+ 1 (* 3 x)))) ((= 0 (mod x 2)) (format t "~d/2=~d
2013-04-08 09:41:43 1108
原创 编程范式 --- 通用交换和搜索函数
void swap(void *vp1,void *vp2,int size){ char buffer[size]; memcpy(buffer,vp1,size); memcpy(vp1,vp2,size); memcpy(vp2,buffer,size);}void * lSearch(void *key,void *base,int n,int elementSize
2013-03-30 12:55:00 882
原创 游戏开发相关的数学
1.2.座标系,以一座城为例把城市当做整个世界,以城市中心为源点,建立3D座标系,这个是世界座标系.物体座标系,一辆车在城市里面,这辆车有自己的座标系,以车的中心为源点,向前为Z辆,向右为X轴,向上为Y轴,这个是物体座标系,车辆向右转,是以自身座标系,绕Y轴向右转,如果说向东转,则是以世界座标系为参考,向世界方向的东转.物体坐标系转为世界座标系,先将物体座标系转为惯性座标系,然后将惯性
2013-03-21 23:18:52 959
原创 Bubble Sort
#include void bubble_sort (int num[],int count){ int i = count - 1; int j = 0; while(i > 0){ for(j = 0; j < i; ++j){ if(num[j] < num[j + 1]){ int temp = num[j]; num[j] = num[j +
2013-03-19 22:58:55 790
原创 Common Lisp ---- 函数
1. 定义新函数(defun name (parameter*) "Optional docuemntion string." body-form*)如果一个字符串紧跟在形参列表之后,那么安应该是一个用来描述函数用途的文档字符串,当函数定义时,该文档字符串被关联到函数名上,并且以后可以通过DOCUMENTATION函数来获取。(defun hello-world() (form
2013-03-17 11:20:35 1118
原创 Ubuntu 12.10 安装 iNodeClient
1. 下载 iNodeClient for linux2. 解压3. cd iNodeClient4. sudo ./install.sh现在运行 ./iNodeClient.sh 会提示出错,因为 libtiff.so.3 和 libjpeg.so.62,因为系统版本的问题,ubuntu 12.10 中这两个文件不叫那个名字了解决方案cd /usr/lib/9
2013-02-27 21:43:18 717
原创 C++ extern
Player.cpp#include int life = 10;int score = 1000;void dead();void getPrize();using namespace std;int main(){ cout << "Life : " << life << endl; cout << "dead ..." << endl;
2012-11-07 10:50:44 646
原创 递归--20层楼梯每次可以走1步2步4步,有几种走法
#include #include #define SIZE_STACK 100int sum = 0;int final_floor = 20;int step[3] = {1,2,4};int count = 0;int push_count = 0;int top = -1;int stack[SIZE_STACK];void push(int n){ if
2012-10-31 02:30:42 3020
原创 二叉查找树的 创建 查找 访问
/**************************** * 按字典顺序输出输入的名称 ****************************/#include #include #include #define N_SIZE 20/* 数据结构 */typedef struct T_node* treePtr;typedef struct { char nam
2012-10-27 23:11:32 639
原创 利用素数表快速寻找 n 以内的所有素数
三个函数,find_prime() 是利用素数表的方法,寻找素数的,find_prime_stupid()是利用另一种传统方法寻找素数的,test_func()用于测试两个函数的速度测试数据分别是 1000,5000,10000,50000,100000,500000,1000000,2000000,5000000 以内的素数。#include #include #incl
2012-09-11 09:13:17 2894
原创 快速排序-C语言版
void quicksort(int num[],int start,int end){ int key=num[start]; int prev = start; int last = end; if(prev >= last) { return; } while(prev < last) { while(prev < last) { if(num[la
2012-09-11 07:44:25 1416 3
原创 ubuntu 12.04 安装 openCV2.4.2
一定先装依赖的包要不然写openCV程序的时候虽然编译能通过,可能运行时出错。sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev然后下载open
2012-09-09 20:52:17 1342
原创 C语言数组和指针的不同
我们用几个小实例来理解数组和指针的不同之处。两个文件array_define.cchar p[] = "i love you";array_and_pointer.c#includeint main(void){ extern char *p; printf("%c\n",p[3]); return 0;}
2012-07-02 21:59:51 722
翻译 fedora17 安装 openCV
suyum install opencv* 编译opencv程序: g++ `pkg-config --cflags --libs opencv` xxxx.c -o xxxx
2012-06-18 09:05:47 670
原创 C语言递归解决数独
运行程序,依次输入数独中的81个数,数独中没有数字的地方输入0,感觉需要输入那么多数太麻烦了,请大家指导如何改的简单一点。#include#include#define DEBUGint shukudo[9][9];typedef struct shudo{ int x; int y; struct shudo * next;}shukudo_ptr;
2012-05-31 08:12:04 3542 2
原创 C语言写的一个简单文件加密程序
#include#include#includeint decrypt(FILE *in,FILE *out);int encrypt(FILE *in,FILE *out);unsigned char atoh(char *hexstr);int main(int argc,char **argv){ if(argc > 1 && strcmp(argv[1],"--help
2012-05-18 09:23:05 3789
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人