Archive for August, 2009

2009/08/14

昨天,晚上做实验的时候,那个做.NET的老师来找我们了,他接了一个在线办公系统(据说英文名叫 OA,啥意思我到现在还没搞懂,Online Assist?),想找学生帮他一起做,

Tags: ,,. 2,598 views
Tags: ,,. 1,946 views

这是上实验课的时候做的,代码里一个多项式的结构体定义用了两个链表,真的的很烦,不过这不能怪我, 我是严格按照我国著名大学、著名教授——清华大学严蔚敏老师的《数据结构》里定义的数据结构照抄的 我个人觉得这种写法很烦,完全没有必要,把简单的一个数据结构复杂化了. 发了一些牢骚,下面贴代码. 001 #include<stdio.h> 002 #include<malloc.h> 003 typedef struct Node 004 { 005     int xs; 006  007     int zs; 008     struct Node *next; 009 }; 010 typedef struct LinkList 011 { 012    struct Node *front,*rear; 013  014 }; 015 //Initial 016 void InitList(struct LinkList *p) 017 { 018    p->front=(struct Node*)malloc(sizeof(struct Node)); 019    p->front->next=NULL; 020    p->rear=p->front; 021 } 022 //Push […]

Tags: ,,. 2,764 views

最近比较忙,琐事非常多,今天终于抽出时间完成了AOV网,贴出来与大家分享~~ 001 /* 002 * Author: Wang Runzhen 003 * Date  : 2009年8月14日 004 */ 005  006 #include<iostream> 007 #include<fstream> 008 using namespace std; 009 const int MAX=7; 010  011 //Creat a Directed  Acycline Graph 012 struct Graph 013 { 014     char vex[MAX]; 015  016     int relate[MAX][MAX]; 017 }; 018  019 void CreatGraph(Graph *g) 020 { 021     int i,j; 022     ifstream in(“AOV.txt”); 023     for(i=0;i<MAX;i++) […]

Tags: ,,,. 4,932 views

欢迎各位与我交流讨论~~    /*     *Author : Wang Runzhen     *Date   : 2009年8月14日    */ 001 #include<iostream> 002 #include<fstream> 003  004 using namespace std; 005 const int MAX=20; 006 “>///////////////////////////////////////////////////////////////////////////////////// 007 struct Graph 008 { 009     char vertex[MAX];//save user’s data 010     int relate[MAX][MAX]; 011     int vnum; 012 }; 013 //初始化图 014 Graph * CreatGraph() 015 { 016     Graph *g=new Graph; […]

Tags: ,. 3,163 views

摘 要  介绍求关键路经的算法,对于给出的事件结点网络,要求求出从起点到终点的所有路径,经分析、比较后找出长读最大的路径,从而得出求关键路径的算法,并给出计算机上机实现的源程序。 关键词  关键路径 最少时间 1:引言 通常把计划、施工过程、生产流程、程序流程的都当成一个工程。除了很小的工程外、一般都把工程分为若干个叫做“活动”的子工程。完成了这些“活动”的子工程,这个工程就可以完成了。 通常我们用有向图表示一个工程。在这种有向图中,用顶点表示活动,用有向边 <Vi,Vj>表示活动Vi必须先于活动Vj进行。如果在无有向环的带权有向图中用有向边表示一个工程中的各项活动(ACTIVITY),用有向边上的权值表示活动的持续时间(DURATION),用顶点表示事件(EVENT),则这种的有向图叫做用边表示活动的网络,简称AOE(active on edges)网络。     AOE网络在某些工程估算方面非常有用。他可以使人们了解:          (1):研究某个工程至少需要多少时间?          (2):那些活动是影响工程进度的关键? 在AOE网络中,有些活动可以并行的进行。从源点到各个顶点,以至从源点到汇点的有向路径可能不止一条。这些路径的长度也可能不同。完成不同路径的活动所需的时间虽然不同,但只有各条路径上所有活动都完成了,这个工程才算完成。因此,完成整个工程所需的时间取决于从源点到汇点的最长路径长度,即在这条路径上所有活动的持续时间之和。这条路径长度就叫做关键路径(critical path)。 2:设计步骤:     1: 以某一工程为蓝本,采用图的结构表示实际的工程计划的时间。     2: 调查以分析和预测这个工程计划个阶段的时间。            3: 用调查的结果建立AOE网(Activity On Edge Network),即边表示活动的网络,并用图的形式表示。 4: 用图来存储这些信息。         5: 用CreateGraphic();函数建立AOE图。

Tags: ,. 6,922 views

prim不就是求最短的线路的算法吗?那最短路径算法是求什么呢?仅仅是为了区别有向图和无向图吗? 等待各位的回答….. 答案见我的原博客

Tags: ,. 3,394 views

迷宫的游戏规则想必大家都会吧,我就不多说了,直接看代码吧! C语言: /* *  Author: Wang Runzhen *  Date  : 2009 年 8 月 14 日 */ #include<iostream> #include<fstream> using namespace std; //用于保存行走路线 struct Stack { int info[50][3]; int point; }; //初始化栈 void InitStack(Stack*s) { s->point=-1; } //入栈 void PushStack(Stack*s,int x,int y,int d) { s->point++; s->info[s->point][0]=x; s->info[s->point][1]=y; s->info[s->point][2]=d; } //出栈 void PopStack(Stack*s,int &d) { d=s->info[s->point][2]; […]

Tags: ,,. 2,432 views

一段时间没用数组指针,居然忘记了这个语法了,调试了半天都不行,真郁闷… 我贴出一段代码来描述我的意思。 QUOTE: 有问题的代码 #include<iostream> using namespace std; void print(int *p) {     int i,j;     for(i=0;i<20;i++)//一种打印方式     {         for(j=0;j<3;j++)         cout<<p[i][j]<<",";     }     cout<<endl;     for(i=0;i<20;i++)//另一种打印方式     {         for(j=0;j<3;j++)         cout<<*(*(p+i)+j)<<",";     } } int main() {     int array[20][3];     for(int i=0;i<20;i++)//赋值     {         for(int j=0;j<3;j++)         array[i][j]=i+j+2;     }     print(array);//打印     return 0; } //如果把array改成char型呢?相应的函数定义怎么改? 如果把array改成char型呢?相应的函数定义怎么改? [ 本帖最后由 52computer 于 2009-3-10 14:13 编辑 ] ———————————————————————                         热心人的解答 ——————————————————————— #include using namespace std; void print(int p[][3]) {         int i,j;         for(i=0;i<20;i++)//一种打印方式         {                 for(j=0;j<3;j++)                     cout<<<",";         }         cout<         for(i=0;i<20;i++)//另一种打印方式         {                 for(j=0;j<3;j++)                         cout<<*(*(p+i)+j)<<",";         } } […]

Tags: ,. 2,605 views

终于终于,我把图的DFS、BFS两个遍历算法仅仅是看懂了!! 两个星期啊!我就干了这个事。 难道我的智商真的没有我想象中的那么高? 废话少说,以下代码是我自己打的,虽然代码网上都有很多类似的,但很多都没有注释,初学者(像我)就很难理解 所以我自己写了一些注释,也算为大家服务一下,别像我那样不理解代码以至花了很多功夫。 /* *  Author : Wang Runzhen *  Date   : 2009年,具体不详 */ #include<iostream> using namespace std; const int MAX=20; //定义一个图 struct Graph { int vertex[MAX];//顶点数组 int relate[MAX][MAX];//顶点邻接矩阵 int vnum;//顶点个数 }; //创建一个图 void CreatGraph(Graph *g,int n) { int i,j,v; g->vnum=n; // 创建n个顶点 for(i=1; i<=n; i++) g->vertex[i]=i; //建立邻接矩阵 for(i=1; i<=n; i++) { […]

Tags: ,. 8,356 views

与前面那一个贴子的深度算法类似,我自己加了一些注释。 /**  Author : Wang Runzhen*  Date   : 2009年,具体不详**/ #include<iostream>using namespace std;const int MAX=20;//定义一个图struct Graph{    int vertex[MAX];//顶点数组    int relate[MAX][MAX];//顶点邻接矩阵    int vnum;//顶点个数}; //创建一个图void CreatGraph(Graph *g,int n){    int i,j,v;    g->vnum=n;// 创建n个顶点    for(i=1; i<=n; i++)        g->vertex[i]=i;//建立邻接矩阵    for(i=1; i<=n; i++)    {        for(j=1; j<=n; j++) […]

Tags: ,,. 15,904 views

#include<iostream> #include<fstream> using namespace std; int main() { ofstream file; file.open(“test.txt”,ios::app); //追加,ios::app的作用就是追加 //当文件打开失败,它也会自动地创建文件“test.txt” file<<“one   \n”; file<<“two   \n”; file<<“three   \n”; return 0; } //当第二次运行这个程序时,one,two,three还在test.txt中,而不是被抹掉了

Tags: ,. 2,002 views

请注意栈的一些易错的地方,特别是pushStack(),popStack()的声明和定义!!! #include<iostream> using namespace std; const int MAX=10; struct Stack { int data[MAX]; int top; }; //initial void initStack(Stack *s) { s->top=-1; } //empty int Stackempty(Stack *s) { if(s->top==-1) return 1; else return 0; } //取栈顶元素 void Stacktop(Stack *s,int &x) { if(Stackempty(s)) cout<<“\n栈为空!\n”; else x=s->data[s->top]; } //pushstack void pushStack(Stack *s,int x)//不需要引用 { if(s->top==MAX-1) cout<<“\n栈已满!\n”; else { s->top++; […]

Tags: . 1,803 views

上实验课的时候做的,把“结构体”和“链表”和“类”联系到了一块,第一次这样做. 有什么不足的地方还请高手指教! 题目: [实现要求] 利用上一实验设计的链表结构存放队列类中的队列元素。也即队列元素的空间是动态申请的。 在构造队列对象时,初始化该链表,在析构队列对象时,释放链表所占的空间。 C语言: 高亮代码由发芽网提供 /** Author: Wang Runzhen* Date  : 2009 年 8 月 14 日*/ #include<iostream>using namespace std;struct List{    int n;    struct List *next;}; class Queue{private:    int count;    List *p,*head,*pNext,*die;public:    Queue()    {        count=0;        p=new List;       […]

Tags: ,,. 2,544 views

转载: 为了避免同一个文件被include多次 1 #ifndef方式 2 #pragma once方式 在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ … … // 一些声明语句 #endif 方式二: #pragma once … … // 一些声明语句 #ifndef的方式依赖于宏名字不能**,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况 #pragma once则由编译器提供保证:同一个文件不会被包含多次。注意这里所说的“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。带来的好处是,你不必再费劲想个宏名了,当然也就不会出现宏名碰撞引发的奇怪问题。对应的缺点就是如果某个头文件有多份拷贝,本方法不能保证他们不被重复包含。当然,相比宏名碰撞引发的“找不到声明”的问题,重复包含更容易被发现并修正。 方式一由语言支持所以移植性好,方式二 可以避免名字重复

Tags: ,. 2,343 views