数据结构
轨迹
这个作者很懒,什么都没留下…
展开
-
动态规划经典例子
1.描述总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。输入格式第一行有两个数,第一个数是分公司数N,第二个数是设备台数M。接下来是一个N*M的矩阵,表明了第 I个公司分配 J台机器的盈利。输出格式第1行为最大盈利值第2到第n为第i分公司分x台P.S.要求答案的字典序最小输入输出样例输原创 2021-03-16 10:00:14 · 104 阅读 · 0 评论 -
克鲁斯卡尔算法求最小生成树
1.克鲁斯卡尔算法 克鲁斯卡尔算法的核心思想是从边集出发,逐步把代价最小且不与已经加到最小生成树的边集构成回路的边加入到最小生成树的边集中,直到求出构成最小生成树的n-1边(n是图的顶点数)。算法的基本步骤如下。对边集进行排序。从权值最小的边开始,如果这条边连接的两个节点于图G中不在同一个连通分量中,则添加这条边到图G中。(简单的说就是试探性的加入这条边看加入后是否构成环)。重复2,直至图G中所有的节点都在同一个连通分量中。原创 2020-06-12 10:59:14 · 6341 阅读 · 0 评论 -
图的遍历
1.前言 以图邻接矩阵的存储方式介绍图的深度优先遍历和图的广度优先遍历。 以下图的图为例简单介绍图的邻接矩阵存储方式。 上图共有9个顶点,15条边,我们用一个二维矩阵来存储顶点之间的连接关系,上图的邻接矩阵如下(0代表两个顶点之间不可达,1代表两个顶点邻接)。ABCDEFGHIA110001000B1原创 2020-06-08 12:34:18 · 221 阅读 · 0 评论 -
串的经典实现代码(包含KMP算法的实现)
最近在复习数据结构,看书的时候大多都是伪代码看着难受,数据结构这种东西还是要自己动手才可以真正理解(即是是参考别人的),下面给出可运行的串头文件和KMP实现代码。1.串 串的接口在数据结构书上已经有了,下面是String.h,用数组实现的串结构,第一个位置存放串的长度。/** * 下面代码中S指原串 T指目标串 * */#include <string.h...原创 2020-04-23 17:49:59 · 339 阅读 · 0 评论 -
线性表的经典实现代码
1.线性表的顺序存储结构 顺序存储结构即用一段连续的存储单元依次存储线性表示的数据元素。优缺点大家应该都知道,下面是实现主要功能的数据结构经典代码。/** * 顺序存储结构的线性表 * anuthor:star sea * */#include <cstdio>#define MAX_SIZE 20#define OK 1#define ERRO...原创 2020-04-20 13:49:57 · 595 阅读 · 3 评论 -
C语言的链表实现
1.链表基础知识链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据(想想数组)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间。链表结构分类:单向链表、双向链表、循环链表等等。下面介绍最常用的单向链表和双向链表。单向链表: 链表中最简单的一种是单向链表,它包含两个域,一个信息域和一个指针域。...原创 2019-07-21 15:46:09 · 842 阅读 · 0 评论