-
【数据结构】二叉树(c++)
所属栏目:[安全] 日期:2020-12-15 热度:127
头文件: #include iostreamusing namespace std;templateclass Typeclass Bintree;//结点类templateclass Typeclass BintreeNode{friend class BintreeType;public:BintreeNode() :data(Type()),leftchild(NULL),rightchild(NULL){}BintreeNode(Type d,Bint[详细]
-
【数据结构】栈的应用——中缀表达式求值(c++)
所属栏目:[安全] 日期:2020-12-15 热度:62
头文件: #pragma once#include iostream#include assert.h#include stringusing namespace std;templateclass Typeclass SeqStack{public:SeqStack(size_t sz = INIT_SZ);~SeqStack();public:bool empty()const;bool full()const;void show()const;bool pus[详细]
-
【数据结构】跳跃列表 SkipList
所属栏目:[安全] 日期:2020-12-15 热度:79
SkipList 超高性能的数据库redis和levelDB都用到了这种神奇的数据结构:SkipList(跳跃表)。之所以说它神奇,是因为跳跃表是基于一个随机数的。跳跃表是在有序链表的基础上进行了扩展,解决了有序链表结构查找特定值困难的问题(O(logn)),是一种可以替代平衡二[详细]
-
《数据结构》学习笔记--第一章绪论
所属栏目:[安全] 日期:2020-12-15 热度:144
《数据结构》学习笔记------第一章绪论------主要是对一些概念的梳理 数据结构 = 数据元素 + 数据关系 = D +S 以复数为例子:复数9+i7 , 这里数据元素是9 和 7 , 数据关系是前者表示实部,后者表示虚部; 数据关系 在 算法设计中体现为 逻辑结构 在 计算机[详细]
-
【数据结构】直接插入排序
所属栏目:[安全] 日期:2020-12-15 热度:56
头文件: #include iostreamusing namespace std;#define MAX 10typedef struct{int r[MAX];}Sqlist;// 交换两个数void swap(int a,int b){int temp = a;a = b;b = temp;return;}// 比较大小void InsertSort(Sqlist sl,int n){for (int i = 1; i6; ++i){if ([详细]
-
【数据结构】直接插入排序_哨兵位
所属栏目:[安全] 日期:2020-12-15 热度:169
头文件: #include iostreamusing namespace std;#define MAX 10typedef struct{int r[MAX+1];}Sqlist;// 比较大小并插入void InsertSort(Sqlist sl,int n){int j;for (int i = 2; i 7; ++i){if (sl.r[i] sl.r[i - 1]){sl.r[0] = sl.r[i];for (j = i; sl.r[0[详细]
-
【数据结构】线性表之顺序存储结构
所属栏目:[安全] 日期:2020-12-15 热度:187
代码如下: 公共头文件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 /*线性表存储空间[详细]
-
【数据结构】线性表之链式存储结构
所属栏目:[安全] 日期:2020-12-15 热度:116
数据结构定义 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 /*线性表存储空间的分配增[详细]
-
【数据结构】字符串匹配
所属栏目:[安全] 日期:2020-12-15 热度:142
算法代码如下,包括暴力匹配和KMP算法。 参考http://blog.csdn.net/v_july_v/article/details/7041827 #include "StringMatching.h"StringMatching::StringMatching(void){}StringMatching::~StringMatching(void){}/*返回子串T在主串S中第pos个字符串之后的[详细]
-
【数据结构】实现栈的各种算法
所属栏目:[安全] 日期:2020-12-15 热度:188
关于栈 栈是一种常用的数据结构,使用栈可以对我们的编程带来很大的帮助,但前提是我们要了解栈的本质是什么。首先,我们要知道栈的特点是 先进后出 (或者说是 后进先出 ),举个列子,就像餐厅里叠得很高的碗,当我们往碗层里放碗时,我们是放到碗层的最上[详细]
-
【数据结构】之队列的java实现(一)
所属栏目:[安全] 日期:2020-12-15 热度:108
[-] 队列的定义 队列的存储结构及实现 1顺序队列的定义 2顺序队列的表示 3顺序队列的基本操作 4顺序表的溢出现象 循环队列 循环队列的java实现代码 队列的定义: 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 (1)允许删[详细]
-
【数据结构】查找
所属栏目:[安全] 日期:2020-12-15 热度:170
二分查找和斐波那契查找 #include "Search.h"Search::Search(void){}Search::~Search(void){}//二分查找int Search::Binary_Search(int* a,int n,int key){//a是按照从小到大排序的数组int low,high,mid;low = 1;high = n;while (low high){mid = (low + hig[详细]
-
【数据结构】排序
所属栏目:[安全] 日期:2020-12-15 热度:119
各种排序方法,直接贴代码 #include "Sort.h"Sort::Sort(void){}Sort::~Sort(void){}void swap(int a,int b){int tmp = a;a = b;b = tmp;}//-------------------------冒泡排序---------------////冒泡排序,低效版void Sort::BubbleSort01(int* array,int l[详细]
-
【数据结构】堆栈和队列
所属栏目:[安全] 日期:2020-12-15 热度:101
堆栈又叫栈(堆栈和堆是两种不同的数据结构),和队列是两种极为常见的数据结构。这两种数据结构多少有点相对立的意思,一个是先进后出,一个是先进先出。概念上虽然很简单,很好理解,但其实其中有非常大的学问。在高并发系统的请求处理,操作系统消息机制[详细]
-
开放《数据结构》专栏的代码
所属栏目:[安全] 日期:2020-12-15 热度:199
之前写的《数据结构》系列博客,虽然已经贴出了主要部分的代码,但还是经常有人问我要代码,我就直接把它开源得了,把代码托管在github上:https://github.com/luoweifu/DataStructure.git 欢迎对这方面有兴趣的人一改进和完善这个项目。[详细]
-
【数据结构】实现平衡二叉树的各种算法(插入,删除,查找,输出)
所属栏目:[安全] 日期:2020-12-15 热度:106
前言 首先,博主写这篇文章出于一个目的,就是可以给真心想弄清平衡二叉树的同学一个引导,为什么这样说呢?首先,当今市面上关于数据结构的书讲的都是比较浅显,像平衡二叉树这个知识点一般就只讲了插入算法,极少书籍对平衡二叉树的删除算法进行讲解,所以[详细]
-
【数据结构】深度优先搜索BFS和广度优先搜索DFS
所属栏目:[安全] 日期:2020-12-15 热度:79
深度优先是访问结点r,循环访问r的每个相邻结点。在访问r的相邻结点n时,我们会继续访问r的其他相邻结点前,先访问n的所有相邻结点。也就是说,在继续搜索r的其他子结点之前,我们会先穷尽搜索n的子结点 伪代码 void DFS_Search(Node root) 广度优先BFS,我[详细]
-
【数据结构】位运算
所属栏目:[安全] 日期:2020-12-15 热度:141
x (~0 n):相当于把x最右边的n位清零 还有一些:(0s,1s表示一串0和一串1) x ^ 0s = x x ^ 1s = ~x x ^ x = 0 x 0s = 0 x 1s = x x x = x x | 0s = x x | 1s = 1 x | x = x 常见的位操作:获取,设置, 清楚以及更新位数据 1. 获取某一位是1还是0: 将1左移i[详细]
-
【数据结构】散列表
所属栏目:[安全] 日期:2020-12-15 热度:115
比较并对比散列表和STL map。 如果输入的数据量不大,可以选用哪些数据结构替代散列表? 在散列表里,值的存放是通过将键传入散列函数实现的。值并不以排序后的顺序存放。 此外,散列表以键值找出索引,进而找到存放值的地方,因此,插入或查找操作均摊后可[详细]
-
【数据结构】1、串的模式匹配算法
所属栏目:[安全] 日期:2020-12-15 热度:138
首先我们一般求子串的位置的时候,我们可以使用这样的方法 /* *功能:这个是定长的串的顺序存储 *时间:2015年7月15日17:16:01 *文件:SString.h *作者:cutter_point */ #ifndef SSTRING_H#define SSTRING_H#define MAXSTRLEN 255 class SString{ unsigned[详细]
-
【数据结构】2、汉诺塔
所属栏目:[安全] 日期:2020-12-15 热度:112
/**功能:假设有3个塔座x y z,在x上插有n个直径大小各不相同、从小到大编号为1 - n的圆盘,要求将x轴上的n个圆盘移动到z轴并按同样顺序排列,移动圆盘须遵循以下规则: 1)、每次只能移动一个圆盘; 2)、圆盘可插在x y z中的任一塔座上; 3)、任何时刻不[详细]
-
【数据结构】3、模拟银行窗口排队叫号系统——C++
所属栏目:[安全] 日期:2020-12-15 热度:181
这里我们模拟一下银行排队叫号系统的实现: 假设一个银行有4个窗口对外接待客户。由于每个窗口在某一时刻只能接待一个客户,在客户众多的时候需要排队,对于刚进入银行的客户,如果某个窗口正空闲, 则可上前办理业务,如果所有窗口都不空闲则排在人数最少的[详细]
-
【数据结构】图的邻接矩阵存储实现
所属栏目:[安全] 日期:2020-12-15 热度:148
图的邻接表存储实现:http://www.jb51.cc/article/p-nvwvgedf-bcb.html 图的邻接表DFS和BFS算法:http://www.jb51.cc/article/p-syijtjxb-bcb.html 这里则介绍图的另外一种存储方式:邻接矩阵。参考资料《大话数据结构》《C算法:卷二》 一、图的数据结构 图[详细]
-
【数据结构】 CF 547B Mike and Feet
所属栏目:[安全] 日期:2020-12-15 热度:124
点击打开链接 长度为n的一个数列 定义 一个区间内的 最小的值为 这个区间的strength 求长度为 1-n 的区间 最大的strength 先求出每个位置左边/右边 的比它小的值的位置 这样在 L+1 R-1 区间内这个位置是最小值 然而 区间[len]的值是小于等于区间[len-1] 即可[详细]
-
【数据结构】-基本概念和术语
所属栏目:[安全] 日期:2020-12-15 热度:165
数据: 对客观事物的符号表示,在计算机学科中指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素: 数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据项: 数据的不可分割的最小单位。一个数据元素可由若干个数据项组成[详细]