-
【数据结构】【CF1073D】 Berland Fair
所属栏目:[安全] 日期:2021-04-02 热度:115
Description 给定 (n) 个商店,他们围成一个圆圈,按照顺时针从 (1) 到 (n) 编号。你有 (T) 元钱,从 (1) 号点开始按照顺时针方向走,每到一个商店,只要钱够就必须买这个商店的物品。商店中物品是无限的,即多次到达可能多次购买。求会买多少件物[详细]
-
【数据结构】 最小生成树(四)——利用kruskal算法搞定例题×3+
所属栏目:[安全] 日期:2021-04-02 热度:187
在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建树,画图,最短路径什么的,统统不需要。废话不多说,直接[详细]
-
《数据结构》中的英语名词
所属栏目:[安全] 日期:2021-04-02 热度:107
data 数据data element 数据元素data item 数据项data object 数据对象data structure 数据结构ADT (Abstruct Date Type) 抽象数据类型alogrithm 算法correctness 正确性readability 可读性robustness 健壮性frequency count 频度asymptotic time complexity[详细]
-
【数据结构】二、线性表
所属栏目:[安全] 日期:2021-04-02 热度:179
2.1. 定义与特点 定义 ? 具有相同数据类型的 (n(ngeq0)) 个数据元素的有限序列。 (n) 是表长,当 (n=0) 时该线性表是一个空表。若用 (L) 表示线性表,一般表示为: [ L=(a_1,a_2,...,a_i,a_{i+1},a_n) ] 特点 元素个数有限 元素具有逻辑上的顺序[详细]
-
【数据结构】第二章小结
所属栏目:[安全] 日期:2021-04-02 热度:81
ps:第一次用博客园写,记录第一次 一、数据结构第二章主要为:顺序表和链表的构造及其增删查改的一些基本操作,以及粗略计算它们的时间or空间的复杂度。 ? ? ? 1、顺序表: ? ? ? ? ? ? ? ? ? ? ? ? ?(1)? 特点:逻辑结构上相邻,物理存储上也是相邻的,[详细]
-
《数据结构》第一章:绪论
所属栏目:[安全] 日期:2021-04-01 热度:152
第一章:绪论 1.1 数据结构的基本概念 数据:是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。 数据元素:是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割[详细]
-
Codeforces 999D Equalize the Remainders 【数据结构】【贪心】
所属栏目:[安全] 日期:2021-04-01 热度:70
考场的时候想到的n*m做法tle了,正解是O(n+m) 首先想到一个性质是不管a[i],a[j]相差多少,只要a[i],a[j]同余,那想让他们increase后%m得到另一个余数,那他们需要increse的次数是相等的。 所以我们想到把n个数按%m从0到m-1分成m类。这样就能贪心了,因为如[详细]
-
【数据结构】4. 树与二叉树
所属栏目:[安全] 日期:2021-04-01 热度:116
目录 4.1 树的基本概念 4.1.1 树的定义 4.1.2 基本术语 4.1.3 树的性质 4.2 二叉树的概念 4.2.1 二叉树的定义及其主要特性 (1)二叉树的定义 (2)几个特殊的二叉树 (3)二叉树的性质 4.2.2 二叉树的存储结构 (1)顺序存储结构 (2)链式存储结构 4.3 二[详细]
-
【数据结构】 线性表 的 链式存储结构
所属栏目:[安全] 日期:2021-04-01 热度:140
1 #includestdio.h 2 #includestdlib.h 3 4 typedef struct LinkList { 5 int data; 6 LinkList * next; 7 8 }LinkList,* linklist; 9 // 创建头结点 10 int CreateList(linklist L) { 11 L = (linklist) malloc ( sizeof (LinkList)); 12 if (! L) 13 exit([详细]
-
【数据结构】10分钟教你用栈求解迷宫老鼠问题超详细教程附C++源
所属栏目:[安全] 日期:2021-04-01 热度:194
问题描述 给定一张迷宫地图和一个迷宫入口,然后进入迷宫探索找到一个出口。如下图所示: 该图是一个矩形区域,有一个入口和出口。迷宫内部包含不能穿越的墙壁或者障碍物。这些障碍物沿着行和列放置,与迷宫的边界平行。迷宫的入口在左上角,出口在右下角。[详细]
-
【数据结构】1-3 多项式相加
所属栏目:[安全] 日期:2021-04-01 热度:117
其实这个还是有点问题的,在偶见情况下会打印出0*x,目前无解唔。。。 原理就是借用线性表,然后做运算直接先插入到后面。 然后遍历一下,只要指数相同就合并在前面一个里面,后面的归0(不删除)。 打印的时候加一个判断是否为0的条件就行了。 下面是源码:[详细]
-
【数据结构】1-2 约瑟夫环问题
所属栏目:[安全] 日期:2021-04-01 热度:174
这里放出两种不同的代码,一个是老师给的(较为复杂),还有一个是自己写的。 自己写的: #includeiostream using namespace std; struct Node { int data; // 数据单元 Node *link; // 指向下一个结点 }; class Josephus{ private : Node *head,*current; /[详细]
-
【数据结构】常见的7种比较排序算法2
所属栏目:[安全] 日期:2021-03-31 热度:81
● 快速排序(Quick Sort) 1、算法描述: ? ?在平均状况下,排序n个数据要 O(nlg(n)) 次比较。在最坏状况下则需要 O(n^2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 O(nlg(n)) 算法更快,因为它的内部循环(inner loop)可以在大部分的[详细]
-
【数据结构】非比较排序的算法实现(包括计数排序、计数排序)
所属栏目:[安全] 日期:2021-03-31 热度:63
计数排序: #define?_CRT_SECURE_NO_WARNINGS?1#includeiostreamusing?namespace?std;#includeassert.h#includevectorvoid?Print(vectorint??a){????for?(int?i?=?0;?i??a.size();?i++)????{????????cout??a[i]??"??";????}????cout??endl;}void?CountSort(v[详细]
-
【数据结构】非比较排序算法(实现计数排序和基数排序)
所属栏目:[安全] 日期:2021-03-31 热度:126
● 计数排序 1、算法思想: ?????? 计数排序是直接定址法的变形。通过开辟一定大小的空间,统计相同数据出现的次数,然后回写到原序列中。 2、步骤: 1)找到序列中的最大和最小数据,确定开辟的空间大[详细]
-
【数据结构】二叉搜索树
所属栏目:[安全] 日期:2021-03-31 热度:190
● 二叉搜索树满足以下条件的二叉树: 1、每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。 2、左子树上所有节点的关键码(key)都小于根节点的关键码(key)。 3、右子树上所有节点的关键码(key)都大于根节点的关键码(key)。[详细]
-
【数据结构】 两个栈实现一个队列【面试】
所属栏目:[安全] 日期:2021-03-31 热度:197
栈结构:先进后出,后进先出,只允许在栈尾操作。 队列:先进先出,在队尾入队,在队头出队。 要想用两个栈实现一个队列,就需要使用一个相当于中间量的结构进行队列的入队和出队操作。 用图形象化为: 这样问题就从图中得出了思路: 入队操作:把入队元素一[详细]
-
【数据结构】 一个数组实现两个栈【面试】
所属栏目:[安全] 日期:2021-03-31 热度:152
以前,我们实现一个栈,轻轻松松,无需考虑太多因素,即可实现。 现在,要求在一个数组里实现两个栈,那么在数组里怎么实现栈呢? 无非就是下标索引,方法也不局限一种,例如:用奇数下标作为栈s1的结构,用偶数作为s2的结构;再者:一前一后的结构,栈s1从[详细]
-
【数据结构】 栈
所属栏目:[安全] 日期:2021-03-31 热度:60
栈结构,通俗易懂,特点:先进后出,后进先出。 以下,仅对于栈结构常用的操作进行实现 包括: ???????? 入栈(push),出栈(pop),判空(empty),栈顶元素(GetTop) #include?iostreamusing?namespace?std;templateclass?Tclass?Stack{public:????Stack([详细]
-
【数据结构】 二叉树
所属栏目:[安全] 日期:2021-03-31 热度:81
二叉树概念 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二 叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树[详细]
-
【数据结构】位图BitMap与布隆过滤器BloomFilter
所属栏目:[安全] 日期:2021-03-31 热度:181
??? 首先先看一下下面这个腾讯的面试题: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。?【腾讯】 思路一: ??? 最容易想到的解法就是遍历所有的40多亿个整数,然后一个一个判断。但是这个需要花费的内[详细]
-
【数据结构】常见的7种比较排序算法1
所属栏目:[安全] 日期:2021-03-31 热度:143
● 直接插入排序(Insert Sort) 1、算法描述: ? ? ? 该算法是一种简单直观的是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上只需用到O(1)的额外空间的排序,因而在从后向前扫描过程中,需要反复把[详细]
-
【数据结构】红黑树
所属栏目:[安全] 日期:2021-03-30 热度:197
? ? ? ? ?红黑树是一种二叉平衡树,在每一个结点增加了一个存储位表示结点的颜色,以维持它的平衡; 红黑树性质 (1)红黑树结点有如下域:color,key,left,right,p;我们把这些NIL结点是为指向外结点的指针,可以自己定义; (2)每一个结点不是红的就是[详细]
-
【数据结构】散列表
所属栏目:[安全] 日期:2021-03-30 热度:52
? ? ??散列表是典型的以空间换取时间的数据结构;它在插入、删除、查找操作上也具有常数平均时间的表现,但是 这种表现是以统计为基础的 ; 基本知识 (1) 负载系数, 指元素的个数除以表格大小, 除非采用开链法(拉链法),否则负载系数应该在0~1之间;[详细]
-
【数据结构】队列
所属栏目:[安全] 日期:2021-03-30 热度:182
队列结构定义common.h #ifndef __HI_COMM_H__#define __HI_COMM_H__#include stdlib.h#include stdio.h#include malloc.h#include string#define LIST_INIT_SIZE 100 /*线性表存储空间的初始分配量;*/#define LIST_INCREMENT 10 /*线性表存储空间的分配增量[详细]