- 博客(47)
- 资源 (3)
- 收藏
- 关注
原创 二叉树基本操作--java实现
public class Node { //node class, the base of tree int data; int index; Node leftChild; Node rightChild;}
2014-08-22 22:40:39
723
转载 指令流水线的计算
若每一条指令都可以分解为取指、分析和执行三步。已知取指时间t取指=4△t,分析时间t分析=3△t,执行时间t执行=5△t。如果按串行方式执行完100条指令需要 (2) △t。如果按照流水方式执行,执行完100条指令需要(3) △t。(2)A.1190 B.1195 C.1200 D.1205 (3)A.504 B.507 C.508 D.510试题解析: 串行执行时,总执行时间=1
2014-08-19 21:02:32
2721
转载 java 中的printStackTrace()方法
java抛出异常的方法有很多,其中最常用的两个:System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常,不过它和另外一个e.printStackTrace()方法不同。后者也是打印出异常,但是它还将显示出更深的调用信息。比如说:A extends ---> B extends ----> C当在创建A的过程中出现问题了,我们抛出异
2014-08-16 15:12:59
1658
转载 基数排序
排序算法写了n种,可不像孔乙己一样考验"茴香豆"的"茴"字有几种写法,而是思维的一种拓展,等到使用的时候根据特定的场景变能灵活的选取更加合适的算法。今日所记录的是基数排序。一. 算法描述基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程:(1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为
2014-01-18 09:34:22
789
原创 随便写了个堆排序程序
#include using namespace std; void HeapAdjust(int num[],int low,int high){ int temp; //用于交换数据 temp = num[low]; for(int i = 2*low; i <= high; i *= 2){ if(i
2014-01-12 10:59:26
1048
原创 选择排序很简单
#include using namespace std;int main(){ printf("输入"); int thenum[11]; int i; for(i = 1; i < 11; i++) { cout << "输入第" << i << "个数" ; cin>>thenum[i]; } int j; int jj; for(i = 1; i <
2014-01-08 08:36:40
709
原创 随便写了个快速排序程序
#include using namespace std;int InsertSort(int num[],int low,int high){ int piov = 0; num[piov] = num[low]; while(low < high) { while(low num[piov]) high--; num[low] = num[
2014-01-08 08:35:01
9696
原创 C++初始化列表
与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。class foo{ public: foo(string s, int i):name(s), id(i){} ; // 初始化列表 private: string name ;i
2014-01-05 18:36:11
1371
转载 C++空类sizeof不为0
初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却 大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们一些基本的语法法则,但不会告诉我们为什么这么做?今天和大家谈的一点感悟就是我在学习编程过程中的一点经验,是编译器这方面的一个具体功能.首先:我们要知道什么是类的实例化,所谓类的实例化就是在内
2014-01-04 12:03:00
1093
原创 希尔排序
希尔排序是要分组插入排序,而后,统一起来进行排序。所以,那个决定分组的间距要不断缩短。在代码中,d即为间距。#include using namespace std; void SellSort(int a[], int M) { int i,j,d; int tmp; for(d = M
2013-11-13 18:42:13
1062
原创 迷宫问题求解
如果理解了栈,并会应用栈来解决问题,这个迷宫的问题并不难。主要就是不断的探路,将可行路径入栈,走不下去就出栈,继续由栈顶元素寻找新路。代码写的不算完美,但答案是正确的。不过按这个方法是没法找最优解的。/*求解迷宫问题2013.8.31by无名*/#include using namespace std;const int M = 8;const
2013-08-31 13:29:20
1108
转载 原来编译原理可以这么学
最近对数据结构的研究又有了进展,挺好玩的,总结这些内容的同时,希望也能帮助到大家,这样的话,达到双赢,这才是写博客的目的,接下来我们来轻松学习编译原理,不要被这些纸老虎吓着了。我们一步步来看到底是怎么个情况,该怎么学习呢。。。其实这部分内容在我上课的时候,是特别头疼的,不知道老师讲的什么,但是经过自己分析琢磨,感觉还好,能分析的差不多,所以就跟大家分享一下:文法:我们学习文法主要是
2013-08-04 08:23:52
1085
转载 编译原理基础:文法
乔姆斯基把方法分成四种类型,即0型、1型、2型和3型。这几种文法类型的概念一定要掌握,是一个非常重要的考点。对于这几种文法,一般书上都只有简单的概念介绍,比较抽象,所以很多学员都没有真正理解。下面我将把概念结合例题进行讲解。 0型文法 设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)*且至少含有一个非终结符,而 β∈(VN∪VT)*,则G是一个0
2013-08-03 17:11:15
1174
原创 八皇后问题求解
#include #include int State[8];int count = 0;class Queen{ public: void EightQueen(int n); //求解八皇后的主干程序 void ShowAnswer(); //用于输出结果 int Chec
2013-07-28 07:04:03
914
原创 比赛日程安排程序
比赛日程安排程序设计的关键在于理解分治法,和递归。另外将日程分治后,又要考虑如何将分开的日程合并,这就需要程序设计者自己观察,总结规律。//比赛日程安排#include #define MAXN 64int a[MAXN][MAXN + 1] = {0};void gamecal (int k, int n) //处理k开始的n个选手的日程{ int i,
2013-07-24 09:44:13
1644
转载 拓扑排序算法
对许多数据结构教材实在不满意,至少我是看不懂……至于拓扑排序算法,教材上那些伪代码真真教人头晕。只写了几个struct结构,我根本看不出这是邻接表。如果给出一个清晰明了的图,一切不就简单了?总之,关键就是建立一个邻接表。然后利用这个表进行拓扑排序。//边表结点声明typedef struct EdgeNode{ int adjvex; s
2013-07-22 10:21:19
934
原创 图---最短路径
#include#define VERTEX_MAX 26#define MAXVALUE 32767struct MatrixGraph{ int Vertex[VERTEX_MAX]; //保存顶点信息(序号或字母) int Edges[VERTEX_MAX][VERTEX_MAX];
2013-07-19 09:23:44
946
1
转载 最小生成树
#include#include#include#define MAX_VERTEX_NUM 20#define OK 1#define ERROR 0#define MAX 1000typedef struct Arcell{ double adj;}Arcell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedef st
2013-07-13 14:36:04
1035
原创 非连通图生成树遍历
#include #include #define LEN sizeof(struct MatrixGraph)#define TEN sizeof(struct MatrixGraph)#define VERTEX_MAX 26#define MAXVALUE 32767struct MatrixGraph{ int Vertex[VERTEX_MAX];
2013-07-13 14:11:22
1672
原创 KMP算法
KMP匹配算法对我来说很复杂。目前只是有一些了解。 2013.6.10KMP算法远没有想象中那么难。要理解KMP算法,只需要理解这个就行了。以abaabcac为例j 1 2 3 4 5 6 7 8--------------------------模式串 a b a a b c
2013-07-03 20:43:15
683
原创 变量的生存期和可见性
在下面程序中体现了变量的生存期和可见性 #include using namespace std; int i = 1; //i为全局变量,具有静态生存期 int main() { static int a; //a为静态局部变量,具有全局寿命,局部可见 int b = -10;
2013-06-30 09:02:40
987
原创 C++语言异常处理
C++ 语言提供对处理异常情况的内部支持。try,throw,和catch语句就是C++语言中用于异常处理的机制。异常处理的语法throw 表达式try 复合语句catch(异常类型声明) 复合语句catch(异常类型声明) 复合语句 如果某段程序中发现了自己不能处理的异常,就可以使用throw表达式抛掷这个异常,
2013-06-29 16:20:05
758
原创 第一年的总结-------20岁
“为国战斗50年”第一年 “为国战斗50年”,快一年了,总结下。 今年主要忙于学习技术,进步还是有的,至少现在和一年前的自己相比,判若两人。一年后回首现在,还会是这个感觉。 技术正是这样的东西,一天没进步,两天没进步,三天没进步……但你不断坚持下去,不放弃的奋斗下去,一年过去了,两年过去了,暮然回首,竟发现自己已经走了这么远……所以,技术
2013-06-29 09:53:41
746
原创 五子棋
/*运行环境:VC++6.0。(需添加turbo图形库 网址:http://www.easyx.cn/skills/)算法改进中。按上下左右键控制光标。按空格落子。 */#include #include #include #include #include #include //设置偏移量#define OFFSET 20#define OFFSET
2013-06-29 09:07:00
890
原创 广度优先遍历
#include #include #define LEN sizeof(struct MatrixGraph)#define VERTEX_MAX 26#define MAXVALUE 32767struct MatrixGraph{ int Vertex[VERTEX_MAX]; //保存顶点信息
2013-06-29 08:54:08
703
原创 邻接矩阵深度优先遍历
#include#define VERTEX_MAX 26#define MAXVALUE 32767struct MatrixGraph{ int Vertex[VERTEX_MAX]; //保存顶点信息(序号或字母) int Edges[VERTEX_MAX][VERTEX_MAX];
2013-06-27 18:00:09
1807
原创 图-----邻接表
#include#include#define VERTEX_MAX 20#define NULL 0#define LEN sizeof(struct edgeNode)struct edgeNode{ int Vertex; //顶点信息 int weight;
2013-06-27 17:59:21
586
原创 C++ STL
istream_iterator:输入迭代器。vector V;copy (istream_iterator(cin), istream_iterator(), back_inserter(V));ostream_iterator:输出迭代器。vector V;//…copy (V.begin(), V.end(), ostream_iterator(cout, "\n"));
2013-06-22 10:05:51
677
原创 线索二叉树
#include #include#define LEN sizeof(struct ThreadBinTree)#define NULL 0enum NodeFlag{ SubTree, Thread}; //枚举值SubTree和Thread分别为0,1struct
2013-06-19 13:38:44
631
原创 串
#include #include static const int Maxlen = 100;using namespace std;typedef struct{ char ch[Maxlen]; int len;}String;class S{ public: S(){ //构造
2013-06-19 13:26:20
599
原创 二叉树的基本操作
#include#include#define LEN sizeof(struct ChainTree)#define NULL 0struct ChainTree{ int num; struct ChainTree *left; struct ChainTree *right;};/*函数功能:进行查找操作。*/ChainTree *BinTreeFind(ChainTr
2013-06-19 13:24:52
731
原创 排序法总结
首先记录一些基本的概念。1.排序方法的稳定性。假设i<j,且在排序前的序列中Ri领先于Rj,则称所用的排序方法是稳定的;反之,若可能使排序后的序列中Rj领先于Ri,则称所用的排序方法是不稳定的。(这是严蔚敏书上的原话,怎么感觉像是什么都没说一样。)2.内部排序。待排序记录在存放在计算机随机存储器中进行的排序过程。3.外部排序。待排序记录数量很大,以致内存一次不能容纳全部记录
2013-06-16 14:42:50
606
原创 函数模板与类模板
函数模板的定义形式:template 或类型名 函数名 (参数表){函数体的定义}#include using namespace std;template T abs (T x){ return x < 0? -x:x;}int main(){ int n = -5; double d = -5.5; cout << abs(n) << endl; co
2013-06-11 10:16:42
612
原创 数据结构---串
串的基本运算下面是我的代码实现:#include #include static const int Maxlen = 100;using namespace std;typedef struct{ char ch[Maxlen]; int len;}String;class S{ public: S(){
2013-06-09 21:06:16
802
原创 结构体作函数参数
#include typedef struct { int Ji; int Sa;}S;void Ha(S He){ printf("%d %d",He.Ji,He.Sa);}void main(){ S Hei; Hei.Ji = 0; Hei.Sa = 1; Ha(Hei);}
2013-06-08 16:12:51
644
原创 C++继承
开始研究C++继承。先自己写一个试试……#include using namespace std;class J{public: void JJ() { cout << "88" << endl; }};class S : public J{public: void SS() { cout << "99" << endl; }};void main()
2013-06-08 13:50:32
867
原创 约瑟夫环问题
#include#include#define NULL 0#define LEN sizeof(struct Josephus)struct Josephus{ int num; struct Josephus *next;};void main(){ printf("约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在"); printf(
2013-06-05 20:30:18
1050
《深入浅出MFC》随书附带代码
2013-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人