- 博客(24)
- 收藏
- 关注
原创 一名程序员的自我修养
一忌:轻易言败,没有自信 没有永不放弃精神的程序员,只是一个有程序员名号的假程序员。一个真正的程序员,知道在程序设计的过程中,可能会遇到不计其数的困难和问题,可能有极多的挫折和失败,而成功只有一次。 就为解决一个问题,我们可能连续十几甚至几十小时的坐在计算机前不停的工作。一个问题解决了,可能又有其它的问题出现。而你要是不能坚持下来,可能从前的一切努力都流失了。轻易言败的人请不要
2015-11-30 16:30:37 283
原创 拓扑排序算法的验证
头文件及功能函数详见【图算法库】代码:#include "graph.h"void TopSort(ALGraph *G){ int i,j; int St[MAXV],top=-1; //栈St的指针为top ArcNode *p; for (i=0; in; i++) //入度置初值0
2015-11-30 16:14:08 348
原创 Floyd算法的验证
头文件及功能函数详见【图算法库】代码:#include "graph.h"#define MaxSize 100void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点{ int k; k=path[i][j]; if (k==-1) return; //找到了起点则返回
2015-11-30 16:12:07 314
原创 Dijkstra算法的验证
头文件及功能函数详见【图算法库】代码:#include "graph.h"#define MaxSize 100void Ppath(int path[],int i,int v) //前向递归查找路径上的顶点{ int k; k=path[i]; if (k==v) return; //找到了起点则返回 P
2015-11-27 08:37:01 342
原创 Kruskal算法的验证
头文件及功能函数详见【图算法库】代码: #include "graph.h"#define MaxSize 100typedef struct{ int u; //边的起始顶点 int v; //边的终止顶点 int w; //边的权值} Edge;void InsertSort(Edge E[],int
2015-11-27 08:28:56 261
原创 Prim算法的验证
* 问题描述:Prim算法的验证。* 输入描述:无* 程序输出:测试数据头文件及功能函数详见【图算法库】代码:#include "graph.h"void Prim(MGraph g,int v){ int lowcost[MAXV]; //顶点i是否在U中 int min; int closest[MAX
2015-11-23 16:59:30 334
原创 迷宫问题之图深度优先遍历解法
* 问题描述: 设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题。 (1)建立迷宫对应的图数据结构,并建立其邻接表表示。 (2)采用深度优先遍历的思路设计算法,输出从入口(1,1)点到出口(M,N)的所有迷宫路径。 * 输入描述:迷宫的邻接矩阵 * 程序输出:邻接表表示迷宫,走出迷宫所有的路径 代码:#include
2015-11-23 16:34:10 884
原创 图遍历算法实现
问题及代码:问题描述: 实现图遍历算法,分别输出如下图结构的深度优先(DFS)遍历序列和广度优先遍历(BFS)序列。 输入描述: 若干测试数据。程序深度优先便利(DFS):(1)源文件:#include"head.h"extern visited[MAXV];void DFS(ALGraph *G, int v){ ArcNode *p;
2015-11-23 16:22:59 1895
原创 操作用邻接表存储的图
问题及代码:问题描述: 实现图遍历算法,分别输出如下图结构的深度优先(DFS)遍历序列和广度优先遍历(BFS)序列。 输入描述:若干测试数据。程序输出:DFS,BFS的遍历序列。 int OutDegree(ALGraph *G,int v){ ArcNode *p; int n=0; p=G->adjlist[v].firstarc;
2015-11-23 16:13:45 393
原创 项目1图基本算法库
图的存储结构主要包括邻接矩阵和邻接表,本算法库提供存储结构的定义,以及用于构造图存储结构、不同结构的转换及显示的代码。算法库采用程序的多文件组织形式,包括两个文件: 1.头文件:graph.h,包含定义图数据结构的代码、宏定义、要实现算法的函数的声明;#ifndef GRAPH_H_INCLUDED#define GRAPH_H_INCLUDED#define MAXV 100
2015-11-20 08:27:32 305
原创 用二叉树求解代数表达式
问题描述: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号, 运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)。请设计算法, (1)根据形如“1+2?3?4/5”的字符串代表的表达式,构造出对应的二叉树(如图), 用后序遍历的思路计算表达式的值时,能体现出
2015-11-20 08:23:10 1081
原创 二叉树算法验证(4)哈夫曼树
问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐掌握算法的程度。 使用你的测试数据,并展示测试结果,观察运行结果,以此来领会算法。 输入描述: 若干测试数据。程序输出: 对应数据的输出。#include #include #define N 50 //叶子结点数
2015-11-16 17:20:07 595
原创 二叉树算法验证(3)中序线索化二叉树的算法验证
问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐掌握算法的程度。 使用你的测试数据,并展示测试结果,观察运行结果,以此来领会算法。 输入描述: 若干测试数据。程序输出: 对应数据的输出。#include #include #define MaxSize 100typede
2015-11-16 16:37:57 338
原创 二叉树算法验证(2)二叉树构造算法的验证
问题描述: 运行并重复测试教学内容中涉及的算法。改变测试数据进行重复测试的意义在于, 可以从更多角度体会算法,以达到逐渐掌握算法的程度。 使用你的测试数据,并展示测试结果,观察运行结果,以此来领会算法。 输入描述: 若干测试数据。程序输出: 对应数据的输出。1.由先序和中序构造二叉树BTNode *CreateBT1(char *pre,char *
2015-11-16 16:08:40 338
原创 二叉树构造算法的验证
问题及代码:1.由先序序列和中序序列构造二叉树定理:任何n(n≥0)个不同节点的二叉树,都可由它的中序序列和先序序列唯一地确定。证明(数学归纳法) 基础:当n=0时,二叉树为空,假设:设节点数小于n的任何二叉树,都可以由其先序序列和中序序列唯一地确定。 归纳:已知某棵二叉树具有n(n>0)个不同节点,其先序序列是a0a1…an−1;中序序列是b0b1…bk−1bkbk+
2015-11-13 08:18:43 500
原创 二叉树的层次遍历算法
问题及代码:算法库见第十周项目1 *问题描述:实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 *程序输出: #include #include "btreee.h"void LevelOrder(BTNode *b){ BTNode *p; B
2015-11-13 08:16:04 509
原创 利用二叉树遍历思想解决问题
问题描述: 假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测试: (1)计算二叉树节点个数; (2)输出所有叶子节点; (3)求二叉树b的叶子节点个数; (4)设计一个算法Level(b,x,h),返回二叉链b中data值为x的节点的层数。 (5)判断二叉树是否相似(关于二叉树t1和t2相似的判断: ①t1和t2
2015-11-09 16:15:48 408
原创 二叉树遍历的递归算法
问题描述: 实现二叉树的先序、中序、后序遍历的递归算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 请利用二叉树算法库。输入描述: 若干测试数据。程序输出: 二叉树的输出。二叉树算法库main函数:int main(){ BTNode *b; Cre
2015-11-06 08:25:17 450
原创 二叉树算法库 .
// 头文件#define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data; //数据元素 struct node *lchild; //指向左孩子 struct node *rchild; //指向右孩子
2015-11-02 17:04:04 356
原创 广义表算法库及应用
问题描述: 1)建立广义表算法库,包括: ① 头文glist.h,定义数据类型,声明函数; ② 源文件glist.cpp,实现广义表的基本运算,主要算法包括: int GLLength(GLNode *g); //求广义表g的长度 int GLDepth(GLNode *g); //求广义表g的深度 GLNode *CreateGL(c
2015-11-02 16:59:38 608
原创 稀疏矩阵的三元组表示的应用(3.2)
问题描述: 采用三元组存储稀疏矩阵,设计两个稀疏矩阵相加的运算算法 输入描述:两个稀疏矩阵程序输出:相加运算后的结果。main函数:#include"tup.h"int main(){ TSMatrix ta,tb,tc; int A[M][N]= { {0,0,1,0,0,0,0}, {0,2,0,0,0,0,
2015-11-02 16:42:25 516
原创 稀疏矩阵的三元组表示的实现(3.1)
问题描述: (1)建立稀疏矩阵三元组表示的算法库,包括: ① 头文tup.h,定义数据类型,声明函数; ② 源文件tup.cpp,实现稀疏矩阵三元组表示的基本运算,主要算法包括: void CreatMat(TSMatrix &t,ElemType A[M][N]); //从一个二维稀疏矩阵创建其三元组表示 bool Value(TSMatrix &t
2015-11-02 16:32:44 673
原创 对称矩阵压缩存储的实现与应用(2)
问题描述: (2)设计算法,实现两个用压缩形式存储的对称矩阵A和B的加法和乘法。实现中请使用好前面设计的基本运算。 输入描述:a,b对称矩阵的全部数据。程序输出:矩阵a,b,a+b与a*b的结果。#include #define N 4#define M 10int value(int a[],int i,int j);void madd(int a[],int b[]
2015-11-02 16:10:49 495
原创 猴子选大王(数组版)
问题描述: 一群猴子,编号是1,2,3 …m,这群猴子(m个)按照1-m的顺序围坐一圈。 从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,最后一只出圈的猴子为大王。 输入m和n,输出猴子离开圈子的顺序,从中也可以看出最后为大王是几号猴子。 要求采用数组作为存储结构完成。 输入描述:猴子的个数与出队的序号。程
2015-11-02 16:03:34 603
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人