自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 二进制枚举:幼儿园买玩具

问题描述蒜厂幼儿园有n 个小朋友,每个小朋友都有自己想玩的玩具。身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m 个玩具。已知玩具商店一共卖k种玩具,编号为1,2,3,…k,你让每个小朋友把想玩的玩具编号都写在了纸上。你希望满足尽可能多的小朋友的需求,请计算出最多能满足多少个小朋友的玩具需求。输入格式第一行,输入三个整数n,m,k(1≤n≤100,1≤m≤k≤15),中间用空格分开

2018-02-05 16:09:11 1325

原创 二进制枚举:islands打炉石传说

问题描述 islands 最近在完一款游戏“炉石传说”,又名“魔兽英雄传”。炉石传说是一款卡牌类对战的游戏。游戏是两人对战,总的来说,里面的卡牌分成两类,一类是法术牌,另一类是随从牌(所谓随从就是怪物)。 为了简化问题,现在假设随从牌的作用是召唤一个具有一定攻击力的怪物,法术牌的作用是给某个随从增加一定攻击力。随从牌和法术牌的使用都需要消耗一定的法力值。现在 islands 有10 点法力值,

2018-02-05 13:06:53 425

原创 编程练习 大整数乘法

计算两个非负整数 A,B的乘积,A,B 可能会很大。输入格式 第一行输入一个非负整数A。 第二行输入一个非负整数B。 A,B 的长度不大于500。输出格式 输出A×B 的值。样例输入43211234样例输出5332114代码如下:#include #include using namespace std;void mul

2018-01-30 20:56:48 616

原创 数据机构学习笔记(四) 图之单源最短路径Dijkstra算法

以下是用于实现Dijkstra算法的图: 代码实现如下:#include<iostream>#define MaxVertexNum 6#define MAXNUM 65535using namespace std;//抽象数据类型typedef string vertextype;//顶点类型typedef float edgetype;//边的权值typedef stru

2018-01-30 12:44:20 288

原创 数据结构学习笔记(四) 图之邻接表实现最小生成树prim算法

以下是使用邻接表存储表示的,最小生成树prim算法的应用实例。 用于演示的图如下: #include<iostream>#define MaxVertexNum 6#define MAXNUM 65535using namespace std;//抽象数据类型typedef char vertextype;//顶点类型//边结点类型typedef struct edge{

2018-01-30 12:38:48 3604 2

原创 数据结构学习笔记(四) 图之最小生成树prim算法邻接矩阵实现

以下是使用邻接矩阵存储表示的,最小生成树prim算法应用的实例。 用于演示的图如下: #include<iostream>#define MaxVertexNum 6#define MAXNUM 65535using namespace std;//抽象数据类型typedef char vertextype;//顶点类型typedef int edgetype;//边的权值type

2018-01-30 12:36:55 1157

原创 数据结构学习笔记(四) 图之邻接矩阵实现广度优先遍历

以下是用邻接矩阵存储表示,实现图的广度优先遍历的实例。 用于遍历的无向图如下: //v0-v7依次为字符0-7#include<iostream>#define MaxVertexNum 8#define MaxSize 7using namespace std;//抽象数据类型typedef char vertextype;//顶点类型typedef int edgetype;/

2018-01-30 12:31:12 1269

原创 数据结构学习笔记(四) 图之邻接表实现广度优先遍历

以下是用邻接表存储表示,实现图的广度优先遍历的示例。 用于遍历的无向图如下: //v0-v7依次为a-h#include<iostream>#define MaxVertexNum 6#define MaxSize 7using namespace std;//抽象数据类型typedef char vertextype;typedef int datatype;//队列typed

2018-01-30 11:44:28 4539

原创 数据结构学习笔记(四) 图之邻接矩阵实现深度优先遍历

以下是用邻接矩阵存储表示,实现图的深度优先遍历的示例。 用于遍历的有向图如下: //递归实现#include<iostream>#define MaxVertexNum 6using namespace std;//抽象数据类型typedef char vertextype;//顶点类型typedef int edgetype;//边的权值typedef struct{

2018-01-30 11:40:09 2152 1

原创 数据结构学习笔记(四) 图之邻接表实现深度优先遍历

一下是使用邻接表存储表示,实现图的深度优先遍历的示例。 用于遍历的有向图如下: #include<iostream>#define MaxVertexNum 6using namespace std;//抽象数据类型typedef char vertextype;//边结点类型typedef struct edge{ int mark; int no; st

2018-01-30 11:36:54 3652

原创 数据结构学习笔记(三) 树形结构之利用堆构造哈夫曼树

以下是利用堆构造huffman树的示例,最终构造结果如下图所示: #include<iostream>using namespace std;//抽象数据类型const int m=12; //外部结点的数目typedef char datatype;typedef struct node1{ float key;//权值 datatype data; stru

2018-01-28 19:35:26 1339

原创 数据结构学习笔记(三) 树形结构之堆删除及堆排序

堆删除也即从堆(最小堆/最大堆)顶部删除(取出)元素,因每次删除(取出)的元素都为当前堆的最大/最小值,故可以利用堆的性质以及堆删除的算法,以达到堆排序的目的。 堆排序的时间复杂度为O(nlogn)。#include<iostream>using namespace std;//类型定义与变量说明const int DefaultSize=100;typedef int datatype;

2018-01-28 19:26:35 371

原创 数据结构学习笔记(三) 树形结构之筛选法建立最小堆

以下是使用筛选法建立最小堆的代码,用于建堆的数据为{35,26,48,10,59,64,17,23,45,31}。 筛选法也即,从堆的最右下一个分支节点起,自下而上遍历每一个分支节点,使得以该分支节点为根的子树成为最小堆。//筛选法+建立最小堆#includeusing namespace std;//类型定义与变量说明const int DefaultSize=100;type

2018-01-28 19:16:18 10574

原创 数据结构学习笔记(三) 树形结构之对称序线索二叉树的插入

以下是对称序线索二叉树的插入代码,用于插入的二叉树如下图所示: (其中X、Y结点用于插入,插入位置如图) #include<iostream>#define MaxSize 13using namespace std;//变量定义与声明typedef char datatype;typedef struct node{ datatype data; struct nod

2018-01-28 19:12:40 769

原创 数据结构学习笔记(三) 树形结构之遍历对称序线索二叉树

以下是前序、对称序以及后序遍历对称序线索二叉树的算法。 用于遍历的二叉树如下图: 一、前序遍历对称序线索二叉树。#include#define MaxSize 10using namespace std;//变量定义与声明typedef char datatype;typedef struct node{ datatype data; struct n

2018-01-23 14:09:09 756

原创 数据结构学习笔记(三) 树形结构之对称序线索化二叉树

以下是对称序线索化二叉树的算法代码实现,被线索化的二叉树如下: #include<iostream>#define MaxSize 10using namespace std;//变量定义与声明typedef char datatype;typedef struct node{ datatype data; struct node *lchild,*rchild;

2018-01-23 14:02:31 591

原创 数据结构学习笔记(三) 树形结构之二叉树的前、中、后序遍历递归方法

以下是二叉树的三种递归遍历方法,包括前序、中序以及后序递归。 递归所用到的图示如下: #include<iostream>using namespace std;//抽象数据类型——变量定义和变量说明const int MaxSize=10;typedef char datatype;typedef struct node{ datatype data; struct

2018-01-23 13:59:25 353

原创 数据结构学习笔记(三) 树形结构之前、中、后序遍历(非递归)

以下是以非递归方法遍历二叉树的代码实现,包括前序遍历、中序遍历以及后序遍历。 遍历所用的二叉树图示如下: 一、前序遍历。#includeusing namespace std;//抽象数据类型——变量定义和变量说明const int MaxSize=10;typedef char datatype;typedef struct node{ datatype d

2018-01-22 17:41:21 430

原创 数据结构学习笔记(三) 树形结构之一般二叉树的顺序存储_二叉链表表示法_转换

以下是一般二叉树的顺序存储表示法到二叉链表表示法的转换,最后用前序遍历的方式输出的代码。//一般二叉树的顺序存储表示法到二叉链表表示法的转换#include<iostream>using namespace std;//抽象数据类型——变量定义和变量说明const char MaxSize=10;typedef int datatype;typedef struct node{

2018-01-22 16:43:18 2418 1

原创 数据结构学习笔记(二) 链表之用循环链表解决约瑟夫问题

约瑟夫问题是个有名的问题:n个人围成一圈,从第一个开始报数,第m个将被杀掉,最后剩下一个,其余人都将被杀掉。例如n=6,m=5,被杀掉的顺序是:5,4,6,2,3,1。我们知道第一个人(编号一定是(m-1)) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(以编号为k=m mod n的人开始)。通过循环结构进行报数,建立用于遍历的结点p,以及p的前驱结点prior,数到出列的人就把该结点从循环链表

2018-01-22 15:58:13 357

原创 数据结构学习笔记(二) 链表之带表头结点的双循环链表基本操作

以下是带表头节点的双循环链表的基本操作,包括链表的创建、前插、删除、打印以及逆向打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next,*prior;}DLnode;//双循环链表的

2018-01-22 15:52:21 376

原创 数据结构学习笔记(二) 链表之带表头结点的单循环链表基本操作

以下是带表头节点的单循环链表的基本操作,包括链表的创建、形成循环链表以及打印。#includeiostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode,*LinkList;//带

2018-01-22 15:48:51 438

原创 数据结构学习笔记(二) 链表之链队列基本操作

以下是链队列的一些基本操作,包括链队列的入队、出队、读队头元素以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}QueueNode;typedef struct{

2018-01-22 15:44:43 248

原创 数据结构学习笔记(二) 链表之带表尾指针的单循环链表

以下是带表尾指针的单循环链表的基本操作,包括链表的创建、形成循环链表以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode,*LinkList;//带表头结点

2018-01-22 15:42:52 4215

原创 数据结构学习笔记(二) 链表之链栈基本操作

以下是链栈的一些基本操作,包括链栈的推入、弹出、读栈顶元素以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}StackNode,*LinkStack;//链栈的推入vo

2018-01-22 15:36:39 313

原创 数据结构学习笔记(二) 链表之带表头结点的单链表及其基本操作

以下是带表头节点的单链表的一些基本操作,包括带表头节点的单链表的创建、查找、插入、删除、反转以及打印。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode;//单链表

2018-01-22 15:33:52 3830

原创 数据结构学习笔记(二) 链表之单链表的基本操作

以下是一些单链表的基本操作方法,包括单链表的创建、增加或删除元素,查找某一个元素以及反转单链表。#include<iostream>using namespace std;//抽象数据类型typedef int datatype;typedef struct node{ datatype data; struct node *next;}ListNode,*LinkLis

2017-10-26 06:52:21 355

原创 数据结构学习笔记(一) 顺序表

一、向量。#include<iostream>using namespace std;//抽象数据类型#define MaxSize 100typedef int datatype;typedef struct{ datatype V[MaxSize]; int n;}SeqList;//向量插入void Insert(SeqList &L,int i,datatyp

2017-10-25 23:05:08 303

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除