Data Structure / Algorithm
文章平均质量分 78
nyzhl
while(SUCCESS!=try());
展开
-
对象缓存 类实现
今天遇到一个问题,写一个小游戏,要存储打出去的子弹,在Form中遍历所有子弹并把他们画出来。起初用LinkedList存储子弹对象,但是子弹越打越多,这个LinkedList会无限增大,写出来感觉很别扭。于是写了一个缓存类,缓存一定数目的子弹对象,当子弹数目超过缓存大小是就覆盖掉最旧的对象。程序有些地方有点像数组队列,不过这里没有头尾之分,也没有出队操作,它的对象的指针自动被覆盖,然后交由垃原创 2007-08-16 15:23:00 · 1038 阅读 · 0 评论 -
二叉树 遍历 算法总结
二叉树的遍历可以大致分为递归遍历和层序遍历。递归遍历依次遍历左子树和右子树,递归遍历时,每个节点会经过三次。按照访问节点时机的的不同,分为先序,中序和后序遍历。先序遍历:1.访问根节点2.先序遍历左子树3.先序遍历右子树//二叉树定义 本例代码为类C伪码 不能直接运行typedef struct BiTree { DataType Data; //定义数据域 struct BiTree *L原创 2007-11-06 23:04:00 · 3138 阅读 · 1 评论 -
可变长度 顺序表 C++实现
简单顺序表 C语言实现 的C++改进版 实现顺序表长度自动增加顺序表是以数组为存储结构的线性表。由于数组中各元素的地址是可计算的,所以查找定位操作 有很高的执行效率。但是这种顺序存储结构的缺点也相当明显,要获得连续的内存空间就必须一次性申请,而在程序执行之前往往无法精确得到所需空间的大小。这时通常先确定一个合适的数组长度,如果后来空间不够,再重新申请一个更大的空间并把原先空间的数据转移过来。原创 2007-09-20 12:07:00 · 2807 阅读 · 0 评论 -
链栈实现算法 - Java 学习笔记(26)
看了看以前的数据结构课本把C语言的算法改成Java的 写了个链栈的算法 (JRE中Stack类在java.util包里)//Coding by zhaohongliangpublic class LinkStackTest ...{ public static void main(String[] args) ...{ LinkStackInteger> ls原创 2007-06-18 10:06:00 · 1513 阅读 · 0 评论 -
简单顺序表 C语言实现
顺序表是以数组为存储结构的线性表。由于数组中各元素的地址是可计算的,所以查找定位操作 有很高的执行效率。但是这种顺序存储结构的缺点也相当明显,要获得连续的内存空间就必须一次性申请,而在程序执行之前往往无法精确得到所需空间的大小。这时通常先确定一个合适的数组长度,如果后来空间不够,再重新申请一个更大的空间并把原先空间的数据转移过来。可以预见到,如果数据庞大的话,这个转移操作是相当耗费资源的。所以顺序原创 2007-09-12 20:22:00 · 1606 阅读 · 0 评论 -
链栈 C语言实现
顺序栈的实现依靠数组,而数组需要事先声明长度,一次性地静态地分配内存空间。这样就给我们带来很多不便。因为我们事先并不能精确地估计栈所需的大小,估计大了浪费空间,估计小了后果就严重了,导致程序无法正常运行。所以我们通常使用链栈这种数据结构。链栈用链表作为存储结构,栈初始化时仅需给栈顶指针分配内存空间,而后每当有数据入栈时再为该数据分配空间,这样实现了内存空间的动态分配。理论上栈的大小可以是无限大原创 2007-09-09 11:23:00 · 5872 阅读 · 5 评论 -
括号匹配问题 栈的应用 C语言实现
括号匹配问题是栈的一个经典应用。程序基本 思路是这样的:遍历字符串,如果遇到左括号就入栈,如果遇到右括号就取栈顶元素,然后比较是否匹配,如果匹配就出栈删除相匹配的括号,如果不匹配就说明括号匹配失败。遍历完成后看栈中是否还有未匹配的括号,如果有就说明括号匹配失败,如果是空栈,就说明括号匹配成功。程序清单:CharStack.h BracketMatch.cBracketMa原创 2007-09-09 20:59:00 · 5959 阅读 · 0 评论 -
顺序栈 C语言实现
最近复习C和数据结构,顺序栈是最简单的栈实现。它是用数组来存放数据,用一个int变量来记录当前栈顶元素的下标,用-1来表示空栈,结构简单。写一个完整的测试程序,编译器虽然是C++的,但程序是按照C语言规范来写的。程序实现:依次向栈中压入0~19二十个数字,然后依次出栈并输出。头文件:SeqStack.h//SeqStack.h#define TRUE 1#define FALSE 0#原创 2007-09-08 17:42:00 · 7693 阅读 · 1 评论 -
Java版 二分法查找 -Java 学习笔记 (21)
public class SearchTest ...{ public static void main(String[] args) ...{ int[] a = ...{0,5,7,8,14,25,52,78,98,100}; int rst=BinarySearch(8,a); System.out.println(rst);原创 2007-06-06 00:05:00 · 855 阅读 · 0 评论 -
Java版 选择排序 -Java 学习笔记 (20)
public class NumberSort ...{ public static void main (String[] args) ...{ int len = args.length; if(len0) ...{ System.out.println("Usage:Type some numbers,They will be so原创 2007-06-05 23:53:00 · 1084 阅读 · 0 评论 -
新写简单C++链表
C++标准化的进度一直都很慢,也许是因为众口难调的原因吧~!但是已经标准化的STL用起来也比较闹心,最典型的就是跨Dll调用时老出问题。首先,参数和返回值不能用STL类,因为STL模板实现时使用了静态成员,而每个Dll都有独立的静态存储空间,这样对象传过去后再访问静态成员,就造成了非法内存访问。由此延伸,类的成员也不能有STL对象,因为类对象拷贝也会造成STL对象拷贝,也会发生上面的问原创 2009-05-08 20:53:00 · 105 阅读 · 1 评论