贪吃蛇*要点分析: *1)数据结构:matrix[][]用来存储地图上面的信息,如果什么也没有设置为false, * 如果有食物或蛇,设置为true;nodeArray,一个LinkedList,用来保存蛇的每 * 一节;food用来保存食物的位置;而Node类是保存每个位置的信息。 *2)重要函数: * changeDirection(Int newDirection) ,用来改变蛇前进的方向,而且只是 * 保存头部的前进方向,因为其他的前进方向已经用位置来指明了。 其中newDirection * 必须和原来的direction不是相反方向,所以相反方向的值用了同样的奇偶性。在测试 * 的时候使用了direction%2!=newDirection%2 进行判断。 * moveOn(),用来更新蛇的位置,对于当前方向,把头部位置进行相应改变。如果越界, * 结束;否则,检测是否遇到食物(加头部)或身体(结束);如果什么都没有,加上头部, * 去掉尾部。由于用了LinkedList数据结构,省去了相当多的麻烦。
上传时间: 2014-06-14
上传用户:cjf0304
构造哈夫曼树 哈弗曼树中没有度为一的节点,是标准的二叉树,所以有n个叶子结点时,需要一个长度为2n-1的一维数组存储哈弗曼树的结点。 (1)、n个叶子节点只有weight权值,处理非叶子节点,从ht[i](ht[1]~ht[n-1])中找到ht[i].weight最小的两个节点ht[s1]和ht[s2],这就是Select(Int n,Int &s1,Int & s2,HTNode *ht)函数完成的功能。 (2)、调用select函数,并将ht[s1]和ht[s2]作为ht[l]的左右子树,即ht[s1]和ht[s2]双亲节点为ht[l],新的根节点的权值为其左右子树权值之和, ht[l].weight=ht[s1].weight+ht[s2].weight
上传时间: 2016-06-13
上传用户:ztj182002
这是在学习数据库时写的一个程序,采取DAO访问ACCESS数据库的方式 1:在程序中使用了CButtonStyle这个免费类库。 2:在InitButtonSytle()中,为了使代码更短小,用循环实现了位图按钮。 // 用循环实现必须手动改动Resource.h中的定义 // 具体细节请参看源代码 for ( Int nIco = IDI_JUMP, nBtn = IDC_JUMP nBtn >= IDC_LISTITEM nIco--, nBtn-- ) { CButtonStyle *Button = ButtonList.RemoveTail() Button->SubclassDlgItem( nBtn, this ) Button->SetIcon( nIco ) Button->SetInactiveBgColor() Button->SetInactiveFgColor() Button->SetActiveBgColor() }
上传时间: 2013-12-24
上传用户:moshushi0009
fft源代码,#include "f2407_c.h" #include "math.h" #define N 32 // FFT变换的点数 extern void fft(void); extern void resave(void); Interrupt void phantom(void); void sysinit(void); extern Int input[2*N];
上传时间: 2016-06-28
上传用户:LouieWu
复数运算#include<iostream.h> class Complex { public: Complex( double r =0, double i =0 ) Complex(Int a) { Real = a Image = 0 } void prInt() const friend Complex operator+ ( const Complex & c1, const Complex & c2 ) friend Complex operator- ( const Complex & c1, const Complex & c2 ) friend Complex operator- ( const Complex & c ) private: double Real, Image }
标签: Complex double iostream include
上传时间: 2016-06-30
上传用户:wang5829
AutomaticPropertiesDefaultValues Article_src.zip PropertyInfo[] props = o.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static) for (Int i = 0 i < props.Length i++) { PropertyInfo prop = props[i] if (prop.GetCustomAttributes(true).Length > 0) { object[] defaultValueAttribute = prop.GetCustomAttributes(typeof(DefaultValueAttribute), true) if (defaultValueAttribute != null) { DefaultValueAttribute dva = defaultValueAttribute[0] as DefaultValueAttribute if(dva != null) prop.SetValue(o, dva.Value, null) }
标签: AutomaticPropertiesDefaultValues PropertyInfo Article_src GetPropert
上传时间: 2014-11-22
上传用户:xaijhqx
我所采用的内存管理思想是链表管理思想,内存分配方案是最佳适应方案(best fit)。其主要的数据结构为 struct node { char* p Int memosize Int flag struct node* next } 这是一个链表的结点的数据结构,用它来管理内存的分配与回收。P 表示所指的分配的内存的首地址,memosize 表示分配的内存块的大小,flag 为一个标志量,表示内存块是否被占用。用 1 和 0 来表示被占用和不被占用。next 表示下一个结点的首地址。 内存管理包括一个分配内存的mm_request(unsigned Int)函数,一个初始化所要管理的内存的mm_init()函数,一个空闲列表排序函数sort(),一个释放内存的mm_release(void* )函数和一个判断内存是否被占用的IsFree(Int)函数。
标签: 内存管理
上传时间: 2016-07-06
上传用户:qunquan
package query public class LinkQuery { private Node front private Node vear public LinkQuery() { this.front=null this.vear=null } public void add(Int i) { Node newNode=new Node(i) if(vear==null && front==null) { vear=newNode front=newNode return } vear.next=newNode vear=newNode } public Int remove() { if(this.front==null) { System.out.prIntln("队是空的,无法取") return -1 } Int temp=this.front.data this.front=this.front.next if(this.front==null) { this.vear=null }
标签: private public Node LinkQuery
上传时间: 2016-07-08
上传用户:天诚24
密码算法程序包miracl contains all the source code for the latest version of MIRACL: a Multiprecision Integer and Rational Arithmetic C/C++ library.
标签: Multiprecision the contains version
上传时间: 2016-07-08
上传用户:xinyuzhiqiwuwu
c++二、通过将其元素插入到双向链表中的方法对数组A进行排序。算法对链表的当前操作位置进行维护,当需要插入表项时,若新元素比当前位置值要大,则往前移动;若小则往后移动。编写函数DoubleSort实现上述排序算法。 template <class T> void DoubliSort( T a[], Int n)
上传时间: 2013-12-03
上传用户:gundamwzc