-
【数据结构】红黑树与跳表-(SortSet)-(TreeMap)-(TreeSet)
所属栏目:[安全] 日期:2021-03-31 热度:85
副标题#e# SortSet 有序的Set,其实在Java中TreeSet是SortSet的唯一实现类,内部通过TreeMap实现的;而TreeMap是通过红黑树实现的;而在Redis中是通过跳表实现的; SkipList 跳表,思想类似平衡二叉树,但又不一样;下面摘了一个介绍: skiplist数据结构简[详细]
-
【数据结构】【CF1073D】 Berland Fair
所属栏目:[安全] 日期:2021-03-31 热度:105
副标题#e# Description 给定 (n) 个商店,他们围成一个圆圈,按照顺时针从 (1) 到 (n) 编号。你有 (T) 元钱,从 (1) 号点开始按照顺时针方向走,每到一个商店,只要钱够就必须买这个商店的物品。商店中物品是无限的,即多次到达可能多次购买。求[详细]
-
『数据结构』线段树
所属栏目:[安全] 日期:2021-03-31 热度:192
线段树原理 线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为(O(logn))。 线段树的每个节点表示一个区间,子节点则分别表示父节点的[详细]
-
《数据结构》实验一: VC编程工具的灵活使用
所属栏目:[安全] 日期:2021-03-31 热度:137
副标题#e# 《数据结构》实验一:VC编程工具的灵活使用 一、实验目的 ???? 复习巩固VC编程环境的使用,以及C++模板设计。 1、回顾并掌握VC单文件结构程序设计过程。 2、回顾并掌握VC多文件工程设计过程 3、掌握VC程序调试过程。 4、回顾C++模板和模板的程序[详细]
-
【数据结构】 第一章 绪论
所属栏目:[安全] 日期:2021-03-31 热度:125
§1.1 什么是数据结构 数据结构是介于数学 计算机软件和计算机硬件三者之间的一门核心课程。 §1.2 基本概念和术语 数据结构通常有下列4种基本结构 ①集合 ②线性结构 ③树形结构 ④图状结构(网状结构) 数据结构是一个二元组: Data Structure = (D,S) D[详细]
-
【数据结构】顺序栈
所属栏目:[安全] 日期:2021-03-31 热度:177
#include STDIO.H#include STRING.H#include STDLIB.Htypedef struct SeqStack{int length;int top;char *data;}seqstack;seqstack* CreatStack(seqstack *s,int n){s=(seqstack *)malloc(sizeof(seqstack)+n*sizeof(char));if(s==NULL) return NULL;memse[详细]
-
【数据结构】单链表
所属栏目:[安全] 日期:2021-03-31 热度:123
#include stdio.h#include stdlib.h#include STRING.Htypedef struct LinkNode{int date; //数据域struct LinkNode * next;}linkNode;typedef struct Linklist{int length; linkNode *head;}linklist;linklist *Creatlist(){linklist *list;list=(linklist[详细]
-
【数据结构】第二章 线性表
所属栏目:[安全] 日期:2021-03-31 热度:195
§2.1线性表的定义 §2.2线性表的顺序表示和实现 优点: 随机 存储 §2.3线性表的链式表示和实现 ?链式表示优点:灵活 ? ? 缺点:不随机存储 ?2.3.1线性链表:储存单元可以是连续的 也可以是不连续的。 ?对于数据元素ai来说,除了存储其本身的信息之外,还[详细]
-
【数据结构】图的遍历方法 深度优先遍历和广度优先遍历
所属栏目:[安全] 日期:2021-03-31 热度:172
接着上次的文章“图的构建(邻接链表法)”,邻接链表法构建图相对来说比较简单,并且遍历起来也相对简单,但是要是动态添加图的节点和图的边,则是实在不方便,不过现在不管那么多,今天的主题是遍历。? -?有另外一种图的构建方法,叫做十字链表法,插入[详细]
-
【数据结构】红黑树
所属栏目:[安全] 日期:2021-03-31 热度:162
副标题#e# ? ? ? ? ?红黑树是一种二叉平衡树,在每一个结点增加了一个存储位表示结点的颜色,以维持它的平衡; 红黑树性质 (1)红黑树结点有如下域:color,key,left,right,p;我们把这些NIL结点是为指向外结点的指针,可以自己定义; (2)每一个结点[详细]
-
【数据结构】散列表
所属栏目:[安全] 日期:2021-03-31 热度:163
副标题#e# ? ? ??散列表是典型的以空间换取时间的数据结构;它在插入、删除、查找操作上也具有常数平均时间的表现,但是这种表现是以统计为基础的; 基本知识 (1)负载系数,指元素的个数除以表格大小,除非采用开链法(拉链法),否则负载系数应该在0~1之[详细]
-
【数据结构】队列
所属栏目:[安全] 日期:2021-03-31 热度:106
队列结构定义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 /*线性表存储空间的分配增[详细]
-
【数据结构】链表
所属栏目:[安全] 日期:2021-03-31 热度:100
副标题#e# 链表是数据结构课程的第一讲,也是最为简单的数据结构。其基本结构是一个包含有值和另一个节点地址或索引的对象。逐个对象因为上一级(前驱)的索引而一一相连,形成了一个链状的线性结构。链表可以灵活地增加或者减少节点的个数,当时需要增加时[详细]
-
【数据结构】基本概念
所属栏目:[安全] 日期:2021-03-31 热度:137
作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 一 基本概念和术语 数据结构 数据结构:数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他[详细]
-
《数据结构》——排序
所属栏目:[安全] 日期:2021-03-31 热度:129
??? 一、 概述 ?? ??? 排序(Sorting)是数据处理中一种很重要的算法。一般情况下,排序操作在数据处理过程中要花费许多时间,为了提高计算机的运行效率,人们提出不断改进的排序算法,这些算法也从不同种角度展示了算法设计的某些重要原则。谈到了计算的[详细]
-
【数据结构】堆
所属栏目:[安全] 日期:2021-03-31 热度:93
副标题#e# 堆 这种数据结构。一般堆用来实现优先级队列。优先级队列:和通常的栈和队列一样,只不过里面的每个元素都有一个“优先级”,在处理的时候,首先处理优先级最高的。通常包含三个操作getMax/delMax/insert 栈和队列算是优先级队列的特例。 使用其[详细]
-
【数据结构】 栈
所属栏目:[安全] 日期:2021-03-31 热度:53
栈结构,通俗易懂,特点:先进后出,后进先出。 以下,仅对于栈结构常用的操作进行实现 包括: ????????入栈(push),出栈(pop),判空(empty),栈顶元素(GetTop) #include?iostreamusing?namespace?std;templateclass?Tclass?Stack{public:????Stack[详细]
-
【数据结构】 二叉树
所属栏目:[安全] 日期:2021-03-31 热度:98
副标题#e# 二叉树概念 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二 叉树的每个结点至多只有二棵子树(不存在度大于2的结[详细]
-
【数据结构】二叉树
所属栏目:[安全] 日期:2021-03-31 热度:53
副标题#e# 前言 数据结构还是大二的时候学过的,当然由于是非计算机专业的学生,所以学的也不怎么样,去年用c++实现了最基本的数据结构,链表/栈/队列/二叉树,三月份看的时候还贴到了博客上。然而当时由于代码量不够,其实写的并不是很好,理解也太不到位[详细]
-
【数据结构】冒泡排序
所属栏目:[安全] 日期:2021-03-31 热度:171
对于一个int数组,请编写一个冒泡排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,3],6 [1,5] class BubbleSort {public: void swap(int * a,int * b){ int temp = *a; *a = *b; *b = temp; } void[详细]
-
【数据结构】快速排序
所属栏目:[安全] 日期:2021-03-31 热度:130
对于一个int数组,请编写一个归并排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,3],6 [1,5] 思路: 1, 选取第一个为哨兵,不要随机选取 2, 在交换的时候一定要注意偏移量,left一定要加上,不然[详细]
-
【数据结构】 两个栈实现一个队列【面试】
所属栏目:[安全] 日期:2021-03-31 热度:140
栈结构:先进后出,后进先出,只允许在栈尾操作。 队列:先进先出,在队尾入队,在队头出队。 要想用两个栈实现一个队列,就需要使用一个相当于中间量的结构进行队列的入队和出队操作。 用图形象化为: 这样问题就从图中得出了思路: 入队操作:把入队元素[详细]
-
【数据结构】 一个数组实现两个栈【面试】
所属栏目:[安全] 日期:2021-03-31 热度:199
副标题#e# 以前,我们实现一个栈,轻轻松松,无需考虑太多因素,即可实现。 现在,要求在一个数组里实现两个栈,那么在数组里怎么实现栈呢? 无非就是下标索引,方法也不局限一种,例如:用奇数下标作为栈s1的结构,用偶数作为s2的结构;再者:一前一后的结[详细]
-
【数据结构】位图BitMap与布隆过滤器BloomFilter
所属栏目:[安全] 日期:2021-03-31 热度:177
副标题#e# ??? 首先先看一下下面这个腾讯的面试题: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。?【腾讯】 思路一: ??? 最容易想到的解法就是遍历所有的40多亿个整数,然后一个一个判断。但是这个需[详细]
-
【数据结构】常见的7种比较排序算法1
所属栏目:[安全] 日期:2021-03-31 热度:120
副标题#e# ● 直接插入排序(Insert Sort) 1、算法描述: ? ??该算法是一种简单直观的是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上只需用到O(1)的额外空间的排序,因而在从后向前扫描过程中,[详细]

浙公网安备 33038102331048号