AOE网--求关键路径

求关键路径算法:①建立AOE网存储结构。②从源点v0出发,令ve[0]=0,按拓扑有序,求其余各顶点的最早发生时间ve[i]。如果得到的拓扑有序序列中顶点个数小于网中顶点个数n,说明网中有环,算法终止。③从汇点vn出发,令汇点的vl[n]=ve[n],按逆拓扑有序,求其余各顶点的...
阅读(1333) 评论(0)

最小生成树---克鲁斯卡尔kruskal算法

1. 邻接矩阵存储//图的邻接矩阵存储表示 #define INFINITY INT_MAX #define MAX_VERTEX_NUM 20 typedef enum {DG, DN, UDG, UDN} GraphKind; //{有向图,有向网,无向图,无向网} typedef enum {OK, ERROR} Status; typedef struct ArcCell{ int adj; //顶点关系类型。对于无权图,用0或1表示相邻否。对于有权图,则为权值类型。 strin...
阅读(967) 评论(1)

有向图--拓扑排序

拓扑排序方法:①从有向图中选一个没有前驱的顶点且输出之。②从有向图中删除该顶点和所有以他为尾的弧。重复上述两步,直至所有顶点已输出,或当期图中不存在无前驱的顶点为止。后一种情况说明有向图中有环!1. 采用邻接矩阵存储//图的邻接矩阵存储表示 #define INFINITY INT_MAX #define MAX_VERTEX_NUM 20 typedef enum {DG, DN, UDG, UDN} GraphKind; //{有向图,有向网,无向图,无向网} typedef enum {OK,...
阅读(3678) 评论(2)

最小生成树算法---普里姆Prim算法

1. 邻接矩阵存储//图的邻接矩阵存储表示 #define INFINITY INT_MAX #define MAX_VERTEX_NUM 20 typedef enum {DG, DN, UDG, UDN} GraphKind; //{有向图,有向网,无向图,无向网} typedef enum {OK, ERROR} Status; typedef struct ArcCell{ int adj; //顶点关系类型。对于无权图,用0或1表示相邻否。对于有权图,则为权值类型。 strin...
阅读(2166) 评论(1)

图的邻接矩阵存储:深度、广度优先遍历

1. 邻接矩阵存储描述如下:#include #include #include "Queue.h" using namespace std; //图的邻接矩阵存储表示 #define INFINITY INT_MAX #define MAX_VERTEX_NUM 20 typedef enum {DG, DN, UDG, UDN} GraphKind; //{有向图,有向网,无向图,无向网} typedef enum {OK, ERROR} Status; typedef struc...
阅读(8959) 评论(2)

内存对齐

 一、内存对齐的原因大部分的参考资料都是如是说的:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。二、对齐规则每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对...
阅读(460) 评论(0)

基数排序

基数排序是借助“分配”和“收集”两种操作,对单逻辑关键字进行排序的一种内部排序方法。//基数排序 #include using namespace std; #define RADIX 10 //关键字基数,此时是十进制整数的基数 typedef struct { int keys[3]; int next; }SLCell; typedef struct { SLCell r[11]; int keynum; //记录的当前关键字个数 int recnum; ...
阅读(373) 评论(0)

内部排序

各种排序算法比较 排序方法   时间复杂度   空间复杂度 稳定性 复杂性   平均情况 最坏情况 最好情况       直接插入排序 O(n*n) O(n*n) O(n) O(1) ...
阅读(408) 评论(0)

C---求赫夫曼编码

#include #include #include typedef struct { int weight; int parent, lchild, rchild; }HTNode, *HuffmanTree;   typedef char **HuffmanCode;   void Huffmancoding(HuffmanTree &HT, H...
阅读(466) 评论(0)

二叉树的建立,遍历,线索化

二叉树是一种树型结构,它的特点是每个节点至多有两颗子树,并且,二叉树的子树有左右之分,其次序不能任意颠倒。 二叉树的性质: ①在二叉树的第i层上,至多有2的i-1次方个结点。 ②深度为k的二叉树至多有2的k次方-1个结点。 ③对任何一棵二叉树T,如果其终点节点数为n0,度为2的结点数是n2,则n0=n2-1。 二叉树的链式存储结构: typedef struct BiTNode { char data; int LTag,RTag; ...
阅读(736) 评论(0)

Linux中定位、查找文件的命令

which 语法 which command 说明 依序从path环境变量所列的目录中找出command的位置,并显示完整路径的名称。在找到第一个符合条件的程序文件时,就立刻停止搜索,省略其余未搜索目录。 范例,找出ls命令的程序文件的位置: which ls 系统输出: /usr/bin/ls whereis 语法 whereis [option] name 说明 找出...
阅读(6705) 评论(0)

Linux系统文件的位置

我们解释Filesystem Hierarchy Standard(FHS)所定义的组织结构。 数据类型 文件系统是用来保存数据的,不同类型的数据应该放在文件系统上的不同位置。因此,第一步必须先理清如何分类数据。FHS将数据的属性分为两类,各类属性各有两种截然相反的性质。 共享性(数据用于网络环境中的应用范围) 1.共享:可供网络上的多个主机系统同时访问的数据。通常是无关特定主机的一般性信...
阅读(750) 评论(0)

队列的链式存储结构

用链表表示队列,仅限制在表头删除和表位插入。有两个分别指向队头和队尾的头指针和尾指针。空的链队列的判决条件是,头指针和尾指针均指向头结点。queueList.h//队列的链式存储结构#include using namespace std; struct QueueData{ int age;}; class QueueNode{p...
阅读(1470) 评论(0)

队列的顺序存储结构

队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表。与顺序栈类似,在队列的顺序存储结构中,用一组地址连续的存储单元一次存放从队列头到队列尾的元素。指针front和rear被分别用来队列头和队列尾元素的位置。在这里,我们设定初始化空队列时,front=rear=0;有新元素插入队列时,rear=rear+1;从队列中删除头元素时,front=front+1;当队列非空时,头指针指向头元...
阅读(599) 评论(0)

栈的链式存储结构

栈的链式表示,即链栈。由于栈的操作是线性表操作的特例,因此链栈可以看成运算受限的单链表。其特点如下: ①链栈无栈满问题,空间可扩充; ②插入和删除仅在栈顶处执行; ③链式栈的栈顶在链头; ④适合于多栈操作。 stackList.h #include class ListInt { public: ...
阅读(831) 评论(0)

栈的顺序存储结构

stackArray.h #include class StackArray { public: StackArray(int MaxStackSize=10); ~StackArray() {if(stack) delete stack;};   bool IsEmpty() con...
阅读(857) 评论(0)

Linux :共享函数库的管理

共享函数库分为静态链接库和动态链接库。静态链接的好处,是程序被搬移到另一个同质系统而不必重新编译,就可顺利运行;缺点是它们的体积比较庞大,需要较多内存。动态链接库的优缺点刚好与静态链接库互补,所浪费内存较少(特别是同时运行多个动态链接的程序且它们共享许多通用函数时),但是如果将文件搬移到另一个系统,却不一定能顺利运行。 共享函数库的依赖关系 动态连接程序通常需要用到一个以上的共享函数库。若所需...
阅读(1308) 评论(0)

源代码的编译与安装

绝大多数来自“源头”的源代码都是封装成所谓的tarball格式。 何为tarball? 一般而言,有份量的Open Source软件都含有相当多的文件,包括源代码、说明文件、编译支持文件、配置文件样本等。要将这么多文件完整的发布出去,典型的做法是以tar将它们封装成单一文件,再以gzip压缩。经过这两道处理手续的文件,就称为tarball文件。其扩展名是.tar.gz或.tgz。 tarba...
阅读(4475) 评论(1)

Red Hat包管理系统

Red Hat包管理系统为RPM(Red Hat Package Manager)。 RPM的概念 RPM的作用是让软件包的安装与维护自动化。包文件封装了程序文件、配置文件、说明文件以及与其他包的依赖关系的描述。不同与Debian APT系统多样化工具的组合,RPM系统将大部分功能集中在同一个程序中-rpm,因此,rpm的命令行选项多到令人记不清楚。RPM将包信息记录在数据库中。每当你用rpm...
阅读(996) 评论(0)

Debian包管理系统

Debian linux的包管理系统称为”Advanced Package Tools” (APT),是一组可帮你自动取得、管理Debian包的工具的工具的组合。 Debian包 每个Debian都包含了程序、配置文件、说明文件以及一个描述包依赖关系的文件。Debian包文件名由三部分组成,分别是: 包名:名称一般简短,但具有说明性。多个单词之间一般以连字符(-)隔开。 版本编号:每个包都...
阅读(1211) 评论(0)
170条 共9页首页 上一页 ... 6 7 8 9 下一页 尾页
    个人资料
    • 访问:580791次
    • 积分:6967
    • 等级:
    • 排名:第3408名
    • 原创:163篇
    • 转载:6篇
    • 译文:0篇
    • 评论:93条
    我的推荐
    最新评论