上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15 分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2. 最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时熟练hash表(要熟,要灵活,代 码要简)7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.8. 调用系统的qsort, 技巧很多,慢慢掌握.9. 任意进制间的转换 阅读全文
posted @ 2012-08-14 14:56 山路水桥 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 在严蔚敏的《数据结构》一书中,所使用的代码存在一些小问题。原版代码就不附上了,主要问题是:1.InThreading函数的参数,应该携带pre,这应该是比较严重的问题。如果没有携带pre,则对pre的修改只是在调用的函数中的局部变量的值的修改,没有影响到原来的pre的值。2.在条件语句中,将命中概率高的语句放在前面,会提高代码效率。但严的算法中在InOrderThreading算法中,将T为NULL时放在了前面。3.InOrderThreading中,只有T为NULL时,执行Thrt->rchild = Thrt才有意义。而在T不为NULL时,要执行Thrt->rchild = p 阅读全文
posted @ 2012-08-14 14:36 山路水桥 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 形态匀称的二叉树称为平衡二叉树 (Balanced binary tree) ,其严格定义是: 一棵空树是平衡二叉树;若 T 是一棵非空二叉树,其左、右子树为 TL 和 TR ,令 hl 和 hr 分别为左、右子树的深度。当且仅当 ①TL 、 TR 都是平衡二叉树; ② | hl - hr |≤ 1;时,则 T 是平衡二叉树。【例】如图 8.4 所示。(a)平衡二叉树(b)非平衡二叉树图8.3 平衡二叉树与非平衡二叉树相应地定义 hl - hr 为二叉平衡树的平衡因子 (balance factor) 。因此,平衡二叉树上所有结点的平衡因子可能是 -1 , 0 , 1 。换言之,若一... 阅读全文
posted @ 2012-08-14 14:30 山路水桥 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 以这棵树来说几个基本的概念。结点的度:一个结点的子树数目称为该结点的度。(例如结点1的结点的度为3,结点2的结点的度为3,结点3的结点的度为0)。树的度:所有结点度当中,度最高的一个。(上图树的度是3)。叶子结点:上图应该是:3、5、6、7、9、10分之结点:除了叶子结点,其他的都称为分之结点,和叶子结点构成互补的关系。(1、2、4、8)内部结点:分之结点除了根结点以外的。(2、4、8)父结点:如5号结点就是2号结点的子结点。子结点:2号结点是5号结点的父结点。兄弟结点:5、6、7称为兄弟结点,出自同一个父亲2号结点。这三个概念是一个相对的概念。层次:0层、1层、2层、3层。还有一个公式就能做 阅读全文
posted @ 2012-08-14 14:24 山路水桥 阅读(3813) 评论(0) 推荐(1) 编辑
摘要: 二叉树类的头文件“树.h”[cpp]view plaincopyprint?#include<iostream>#include<stack>//STL#include<queue>usingnamespacestd;classTree{public:Tree*Left;Tree*Right;chardata;Tree();//成员函数voidCreateTree(Tree*&node);//递归的遍历二叉树voidPreOrderVisit(Tree*T);voidInOrderVisit(Tree*T);voidLastOrderVisit(Tr 阅读全文
posted @ 2012-08-14 14:18 山路水桥 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 先序遍历二叉树算法1源码打印?//Copyright(c)2009,ALexZhonG.Allrightsreserved.StatusPreOrderTraverse(BiTreeT,Status(Visit*)(TElemTypee)){InitStack(S);Push(S,T);p=T;//或GetTop(S,p);while(!StackEmpty(S)&&p){while(p){if(!Visit(p->data))returnERROR;Push(p->rchild);p=p->lchild;}Pop(S,p);}DestroyStack(S); 阅读全文
posted @ 2012-08-14 14:13 山路水桥 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 学习的四种境界:1)熟能生巧:经过练习掌握课本上的内容,知道问题的答案。2)举一反三:具备了思考的能力,掌握了学习的方法,能够知其然,也知其所以然。3)无师自通:掌握了自学、自修的方法,无师亦可以主动学习。4) 融会贯通:可以将学到的知识灵活运用于生活和工作实践,懂做事与做人的道理。 阅读全文
posted @ 2012-08-10 08:04 山路水桥 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=63代码如下:View Code 1 #include <cstdio> 2 #include <cstring> 3 using namespace std; 4 5 const int N = 20; 6 int s[1 << N]; 7 8 int main() 9 {10 int d, r;11 while(scanf("%d%d", &d, &r) != EOF)12 {13 memset(s, 0, si 阅读全文
posted @ 2012-08-10 07:12 山路水桥 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=467直接上代码: 1 #include <cstdio> 2 #include <cstring> 3 using namespace std; 4 5 const int N = 1001; 6 char stack[N]; 7 char op[N]; 8 char s[N]; 9 int top; 10 int top_op; 11 12 int compare(char a); 13 void translate(); 14 15 int main() 1 阅读全文
posted @ 2012-08-10 07:09 山路水桥 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=35直接上代码:View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 using namespace std; 5 6 const int N = 1001; 7 char stack[N]; 8 char op[N]; 9 char s[N]; 10 int top; 11 int top_op; 12 int compare(char a); 13 voi 阅读全文
posted @ 2012-08-10 07:07 山路水桥 阅读(480) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页