-
自己动手实现java数据结构(六)二叉搜索树
所属栏目:[安全] 日期:2021-04-01 热度:179
1.二叉搜索树介绍 前面我们已经介绍过了向量和链表。有序向量可以以二分查找的方式高效的查找特定元素,而缺点是插入删除的效率较低(需要整体移动内部元素);链表的优点在于插入,删除元素时效率较高,但由于不支持随机访问,特定元素的查找效率为线性复杂度[详细]
-
自己动手实现java数据结构(一) 向量
所属栏目:[安全] 日期:2021-04-01 热度:175
1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址。为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为 数组(Array) 的数据结构与之对应。在使用数组时需要事先声明 固定的大小 以便程序在运行时为其开辟内存空[详细]
-
自己动手实现java数据结构(四)双端队列
所属栏目:[安全] 日期:2021-04-01 热度:87
1.双端队列介绍 在介绍双端队列之前,我们需要先介绍队列的概念。和栈相对应,在许多算法设计中,需要一种" 先进先出(First Input First Output) "的数据结构,因而一种被称为" 队列(Queue) "的数据结构被抽象了出来(因为现实中的队列,就是先进先出的)。 队[详细]
-
自己动手实现java数据结构(三) 栈
所属栏目:[安全] 日期:2021-04-01 热度:58
1.栈的介绍 在许多算法设计中都需要一种 "先进后出(First Input Last Output)" 的数据结构,因而一种被称为 "栈" 的数据结构被抽象了出来。 栈的结构类似一个罐头:只有一个开口;先被放进去的东西沉在底下,后放进去的东西被放在顶部;想拿东西必须按照从上[详细]
-
【数据结构】第二章 线性表
所属栏目:[安全] 日期:2021-03-31 热度:51
§2.1线性表的定义 §2.2线性表的顺序表示和实现 优点: 随机 存储 §2.3线性表的链式表示和实现 ?链式表示优点:灵活 ? ? 缺点:不随机存储 ?2.3.1线性链表:储存单元可以是连续的 也可以是不连续的。 ?对于数据元素ai来说,除了存储其本身的信息之外,还需[详细]
-
【数据结构】顺序栈
所属栏目:[安全] 日期:2021-03-31 热度:68
#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;memset([详细]
-
【数据结构】图的遍历方法 深度优先遍历和广度优先遍历
所属栏目:[安全] 日期:2021-03-31 热度:139
接着上次的文章“图的构建(邻接链表法)”,邻接链表法构建图相对来说比较简单,并且遍历起来也相对简单,但是要是动态添加图的节点和图的边,则是实在不方便,不过现在不管那么多,今天的主题是遍历。? -? 有另外一种图的构建方法,叫做十字链表法,插入删[详细]
-
【数据结构】 两个栈实现一个队列【面试】
所属栏目:[安全] 日期:2021-03-31 热度:141
栈结构:先进后出,后进先出,只允许在栈尾操作。 队列:先进先出,在队尾入队,在队头出队。 要想用两个栈实现一个队列,就需要使用一个相当于中间量的结构进行队列的入队和出队操作。 用图形象化为: 这样问题就从图中得出了思路: 入队操作:把入队元素一[详细]
-
【数据结构】红黑树
所属栏目:[安全] 日期:2021-03-30 热度:165
? ? ? ? ?红黑树是一种二叉平衡树,在每一个结点增加了一个存储位表示结点的颜色,以维持它的平衡; 红黑树性质 (1)红黑树结点有如下域:color,key,left,right,p;我们把这些NIL结点是为指向外结点的指针,可以自己定义; (2)每一个结点不是红的就是[详细]
-
【数据结构】散列表
所属栏目:[安全] 日期:2021-03-30 热度:126
? ? ??散列表是典型的以空间换取时间的数据结构;它在插入、删除、查找操作上也具有常数平均时间的表现,但是 这种表现是以统计为基础的 ; 基本知识 (1) 负载系数, 指元素的个数除以表格大小, 除非采用开链法(拉链法),否则负载系数应该在0~1之间;[详细]
-
【数据结构】队列
所属栏目:[安全] 日期:2021-03-30 热度:125
队列结构定义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-30 热度:148
链表是数据结构课程的第一讲,也是最为简单的数据结构。其基本结构是一个包含有值和另一个节点地址或索引的对象。逐个对象因为上一级(前驱)的索引而一一相连,形成了一个链状的线性结构。链表可以灵活地增加或者减少节点的个数,当时需要增加时,临时向系[详细]
-
【数据结构】基本概念
所属栏目:[安全] 日期:2021-03-30 热度:149
作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 一 基本概念和术语 数据结构 数据结构:数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们[详细]
-
《数据结构》——排序
所属栏目:[安全] 日期:2021-03-30 热度:160
??? 一、 概述 ?? ??? 排序(Sorting)是数据处理中一种很重要的算法。一般情况下,排序操作在数据处理过程中要花费许多时间,为了提高计算机的运行效率,人们提出不断改进的排序算法,这些算法也从不同种角度展示了算法设计的某些重要原则。谈到了计算的效[详细]
-
【数据结构】堆
所属栏目:[安全] 日期:2021-03-30 热度:192
堆 这种数据结构。一般堆用来实现优先级队列。 优先级队列:和通常的栈和队列一样,只不过里面的每个元素都有一个“优先级”,在处理的时候,首先处理优先级最高的。通常包含三个操作getMax/delMax/insert 栈和队列算是优先级队列的特例。 使用其他数据结构[详细]
-
【数据结构】二叉树
所属栏目:[安全] 日期:2021-03-30 热度:59
前言 数据结构还是大二的时候学过的,当然由于是非计算机专业的学生,所以学的也不怎么样,去年用c++实现了最基本的数据结构,链表/栈/队列/二叉树,三月份看的时候还贴到了博客上。然而当时由于代码量不够,其实写的并不是很好,理解也太不到位。 最近在看[详细]
-
【数据结构】冒泡排序
所属栏目:[安全] 日期:2021-03-30 热度:165
对于一个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; } voi[详细]
-
【数据结构】快速排序
所属栏目:[安全] 日期:2021-03-30 热度:140
对于一个int数组,请编写一个归并排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,3],6 [1,5] 思路: 1, 选取第一个为哨兵,不要随机选取 2, 在交换的时候一定要注意偏移量,left一定要加上,不然通[详细]
-
linux csf 防火墙 防止少量的ddos cc攻击很有效
所属栏目:[安全] 日期:2021-03-19 热度:184
上篇博客说到,httpd请求数过多,apache连接数不够,加大连接数的做法,在受ddos,cc攻击的情况下,最终的结果就是系统资源耗尽,导致死机。 测试服务器,也没有想到会受到攻击,什么防范措施也没有做。装了csf的防火墙,在应对少量ddos,cc攻击的,还是挺管用[详细]
-
Linux服务器的初步配置流程
所属栏目:[安全] 日期:2021-03-19 热度:142
开发网站的时候,常常需要自己配置Linux服务器。 本文记录配置Linux服务器的初步流程,也就是系统安装完成后,下一步要做的事情。这主要是我自己的总结和备忘,如果有遗漏,欢迎大家补充。 下面的操作针对Debian/Ubuntu系统,其他Linux系统也类似,就是部分[详细]
-
简单的HTTP服务器 http-server
所属栏目:[安全] 日期:2021-03-19 热度:153
因为web worker的需要启动服务器,所以急需一个本地服务器,一年前安装的XAMPP也打不开了。况且,只是运行个前端的页面,用个简单的服务器就行了。 http-server 是一个简单的零配置命令行HTTP服务器,基于 nodeJs。 http-server 安装 npminstallhttp-server-[详细]
-
csf 针对某一ip 开放 单个 多个端口
所属栏目:[安全] 日期:2021-03-19 热度:113
csf是一个其于iptables的防火墙,在/etc/csf.conf中可以开放端口,但是在这里开放的端口,是所有IP都可以访问的。如果想针对某一ip开放某一端口,或者多个端口怎么办呢。 修改/etc/csf.allow文件,添加以下内容 1,开放单个端口 tcp|in|d=3306|s=192.168.10.10[详细]
-
使用nethogs查看进程使用的网络情况
所属栏目:[安全] 日期:2021-03-19 热度:123
NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。 安装nethogs 本篇文章主要讲解centeos和ubuntu如何安装nethogs #centeos安装yuminstallnethogs#ubuntu安装sudoapt-getinstallnethogs 使用nethogs 在基于[详细]
-
csf ip 端口 映射
所属栏目:[安全] 日期:2021-03-19 热度:126
csf基于iptables的,不支持SNAT外,其他映射是支持的。最新版不知道,有没有解决这个问题。配置文件/etc/csf.allow 1,DNAT 用法:IPx|*|IPy|*|tcp/udp //IPX映射IPYIPx|portA|IPy|portB|tcp/udp //IPX 端口portA 映射到ipY 端口portB例子:192.168.254.62|*[详细]
-
iptables snat和dnat
所属栏目:[安全] 日期:2021-03-19 热度:86
iptables中的snat和dnat是非常有用的,感觉他们二个比较特别,所以单独拿出来说一下. dnat是用来做目的网络地址转换的,就是重写包的目的IP地址。如果一个包被匹配了,那么和它属于同一个流的所有的包都会被自动转换,然后就可以被路由到正确的主机或网络。比[详细]