算法
文章平均质量分 77
alphabuilder
体验优雅编程之美...
展开
-
内联汇编优化的TAlpha::FillSolidColor
#ifndef __GNUC__ #define _calpha_using_inlineasm_ 1#else #define _calpha_using_gccinlineasm_ 1 #ifdef _calpha_using_inlineasm_ #undef _calpha_using_inlineasm_ #endif#endif原创 2012-06-16 10:43:44 · 320 阅读 · 0 评论 -
二叉树计算以结构体数组元素为变量的表达式
有如下结构体的数据typedef struct tagdata{ double a; double b; double c; double d;}data;有数组数据data x[1000];有公式y = (x.a + x.b + x.c + x.d + 100) / 4其中数据对应关系为y[n] = (x[n - 1].a + x[n - 2]原创 2012-04-10 19:49:42 · 685 阅读 · 0 评论 -
二叉树计算包含函数的中缀表达式
二叉树计算中缀表达式,支持科学计数法,支持前导正负号,支持指数运算符“^”,支持括号,支持函数,具有错误检查。以字符串形式输入。 #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include原创 2012-03-28 15:22:32 · 1204 阅读 · 0 评论 -
用动态规划优化老鼠走迷宫中的最短路线解法
#include #include #include #include #include #ifdef _WIN32 #include #endif#ifndef STRICT #define STRICT 1#endif/* 宏DYNAMIC-是否开启动态规划 */#define DYNAMIC 1#define原创 2012-01-30 11:29:14 · 2496 阅读 · 0 评论 -
老鼠走迷宫算法中的一点优化
老鼠走迷宫的算法当中在搜索路线时,有一些位置是死胡同,事先标记出来可以大大减少无效搜索,提高搜索速度。比如三个方向都是墙壁,只有一个方向可以走通的非起点非终点位置就可以标记出来,在搜索时根本不用再去计算。 原始图 标记图 #include #include #include #ifdef _WIN32 #include void g原创 2012-01-19 21:55:20 · 1134 阅读 · 0 评论 -
三叉树解2011年度最变态的迷宫难题
问题出处:Matrix67: My Blog ? Blog Archive ? 2011年度最变态的迷宫难题 问题描述:“下面大家将会看到的是一个极其简单而又极其复杂的“迷宫”,这无疑是我在本年度见到的最变态的谜题:从左边入口处的 2011 进去,在迷宫里转悠,最后变成 2012 从右边出来。你可以在迷宫里转圈,可以重复之前走过的路,但不能往回退着走。”原创 2012-01-14 13:25:33 · 742 阅读 · 0 评论 -
二叉树计算中缀表达式(三)
二叉树计算中缀表达式,支持指数运算符“^”,支持括号,以字符串形式输入。括号通过递归处理。下一步要支持科学计数,处理空格正负号,检查输入错误。#include #include #include #include #include #include #define BRACKETSMARK 0x40#define MAXBUFFERLEN 1024typ原创 2012-01-09 14:22:16 · 602 阅读 · 0 评论 -
二叉树计算中缀表达式(二)
二叉树计算中缀表达式,支持指数运算符“^”,暂时不支持括号,直接以字符串形式输入。#include #include #include #include #include typedef struct tagbintree{ char op; char level; /* 记录括号 */ double fvalue; struct tagbintre原创 2012-01-09 13:44:28 · 555 阅读 · 0 评论 -
不用栈检查小括号、中括号、大括号的匹配
设置三个计数器初值设为零,分别记录小括号、中括号、大括号。开始进行第一次扫描,从左向右依次扫描每个字符,遇到左括号计数器加一,遇到右括号计数器减一,出现计数器小于零时,报错退出。扫描结束后,若三个计数器有一个不为零说明括号不匹配,报错结束检查。 第一步扫描结束,如果正确说明三种括号本身匹配正确。现在可能出现的错误只可能是不同括号出现交叉,比如 {(}{)},({[)]}。原创 2012-01-09 13:28:46 · 1973 阅读 · 0 评论 -
嵌套优化版括号匹配检查
设置三个计数器初值设为零,分别记录小括号、中括号、大括号。开始进行第一次扫描,从左向右依次扫描每个字符,遇到左括号计数器加一,遇到右括号计数器减一,出现计数器小于零时,报错退出。扫描结束后,若三个计数器有一个不为零说明括号不匹配,报错结束检查。 第一步扫描结束,如果正确说明三种括号本身匹配正确。现在可能出现的错误只可能是不同括号出现交叉,比如 {(}{)},({[)]}。原创 2012-09-09 11:31:02 · 1096 阅读 · 0 评论 -
结构体类型数组int成员变量求和函数
struct stru1{ int a; float b; int c; int d;};struct stru2{ int a; char b[100]; int c; stru1 d;};struct stru1 s1[100];struct stru2 s2[100];...int sum1 = supe原创 2012-10-10 10:48:18 · 3099 阅读 · 0 评论 -
二叉树计算中缀表达式
二叉树计算中缀表达式,暂时不支持括号,直接以字符串形式输入。#include #include #include #include typedef struct tagbintree{ char op; char level; /* 记录括号 */ double fvalue; struct tagbintree *lchild; struct ta原创 2012-01-09 13:38:56 · 853 阅读 · 0 评论