自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 查找和排序

基本思想:在待排序表L[1....,n]中任取一个元素pivot作为枢轴,(通常取首元素),通过一趟快速排序将待排序表划分为独立的两部分L[1,,,k-1]和L[k+1...n],pivot放在了最终位置L[k]中。,若为逆序,则进行交换,直到序列比较完,第一趟冒泡结束,结果是将最小的元素交换到待排序列的第一个位置(或将最大的元素交换到待排序列的最后一个位置)。b.平方探测法:di=0*0,1*1,-1*(-1),2*2,-2*(-2),....k*k,-k*(-k) ,k<=m/2。

2024-06-23 20:43:02 1530 2

原创 图的学习.

①对于无向图:A[i][j]=1,(vi,vj)存在;·每个顶点出现且只出现一次,若存在一条从顶点A到顶点B的路径,则在排序中顶点B出现在顶点A的后面。对于有向图,任意两个顶点之间都存在方向相反的两条弧,边的条数:n*(n-1)·入度是以顶点v为终点的有向边的数目,出度是以顶点v为起点的有向边的数目;对于无向图,任意两个顶点之间都存在边,边的条数:(n*(n-1))/2。第二个图的顶点和第一个图相等,边是它的子集,所以图2是图1的生成子图。第二个图的顶点和边都是第一个图的子集,所以图2是图1的子图。

2024-06-23 14:37:28 987

原创 哈夫曼树及其应用

⑤结点的带权路径长度:从根结点到该结点之间的路径长度与该结点的权的乘积。①路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。出现了重码情况,改进:使用前缀编码——要设计长度不等的编码,则必须使。④把从根到每个叶子的路径上的标号连接起来,作为该叶子代表的字符的编码。③树的路径长度:从树根到每一个结点的路径长度之和。最优二叉树:带权路径长度最短(WPL)的二叉树。,但路径长度最短的二叉树不一定是完全二叉树。②结点的路径长度:两节点路径上的分支数。③在哈夫曼树的左分支上标0,右分支上标1。

2024-06-22 19:49:56 433

原创 树和森林.

①加线:若p结点时双亲结点的左孩子,则将p的右孩子,右孩子的右孩子,沿分支找到的所有右孩子,都与p的双亲用线连起来。①抹线:将二叉树中根结点与其右孩子连线,及沿有分支搜索到的所有右孩子间连线全部抹掉,使之变成孤立的二叉树。实现:用二叉链表作树的存储结构,链表中每个结点的两个指针域分别指向其第一个孩子结点和下一个兄弟结点。③以第一棵树的根结点作为二叉树的根,再以根结点为轴心,顺时针旋转,构成二叉树型结构。②抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系。②先序遍历森林中第一棵树的子树森林。

2024-06-22 17:38:12 886

原创 遍历二叉树和线索二叉树

顺着某一条搜索路径巡防二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次(周游)

2024-06-22 16:27:05 838

原创 树和二叉树的定义

树是n(n>=0)个结点的有限集,若n=0,称为空树;若n>0,则有且仅有一个特定的称为根的结点,其余结点可分为m(m>=0)个互不相交的有限集T1,T2,....,Tm,其中每一个集合本身又是一棵树,并称为根的子树。二叉树是n(n>=0)个结点的有限集,它或者是由空集(n=0)或着由一个根结点及两棵互不相交的左子树和右子树组成。特点:①不存在度大于2的结点②子树有左右之分,次序不能颠倒③二叉树可以是空集合,根可以有空的左子树或空的右子树·注:二叉树≠树。

2024-06-21 21:46:39 678

原创 广义表的定义、存储结构

广义表是n>=0个元素a0,a1,....,a(n-1)的有限序列,其中每一个a(i)或者是原子,或者是一个广义表。(拓宽了的线性表)

2024-05-27 17:52:07 878

原创 数组的定义、顺序存储及特殊矩阵的存储

数组是按一定格式排列起来的具有相同类型的数据元素的集合·声明格式: 数据类型 变量名称[长度];例:int num[5]={0,1,2,3,4};ADT Array{数据对象:j(i)=0,... b(i)-1, i=1,2,.....,n。

2024-05-27 16:29:44 786

原创 串的定义、存储结构及其运算

串是零个或多个任意字符组成的有限序列数据对象:D={ai | ai∈CharacterSet,i=1,2,3,....,n,n>=0}数据关系:R1={ | a(i-1),ai∈D,i=1,2,....,n}基本操作:①StrAssign (&T,chars) //串赋值②StrCompare (S,T) //串比较③StrLength (S) //求串长④Concat (&T,S1,S2) //串连结。

2024-05-24 17:04:41 665 1

原创 栈和队列02——队列的定义、表示及操作的实现

队列是仅在表尾进行插入操作,在表头进行删除操作的线性表。·表尾a(n)端称为队尾,表头a1端称为队头。插入元素称为"入队",删除元素称为"出队"。·特点:先进先出ADT Queue{数据对象:数据关系:(a1为队列头,a(n)为队列尾)基本操作:初始化、入队、出队、取队头元素等}ADT Queue①InitQueue(&Q) 初始化操作操作结果:构造空队列Q②DestroyQueue(&Q) 销毁队列操作条件:队列Q已存在;操作结果:队列Q被销毁。

2024-05-18 11:47:18 960

原创 栈和队列01——栈的定义、表示及操作的实现

栈是限定仅在表尾进行插入或删除操作的线性表。·表头端称桟底(bottom),表尾端称栈顶(top),插入元素到桟顶的操作称为入栈,从栈顶删除最后一个元素的操作称为出栈·不含元素的空表称为空栈特点:后进先出ADT Stack{数据对象:数据关系:基本操作:初始化、进栈、出栈、取栈顶元素等}ADT Stack①InitStack(&S) 初始化操作操作结果:构造一个空栈S②DestroyStack(&S) 销毁栈操作初始条件:栈S已存在;操作结果:栈S被销毁。

2024-05-13 21:21:24 1044 1

原创 线性表学习06——线性表、有序表的合并

已知线性表La和Lb中的数据元素按值非递减有序排列,现要求将La和Lb归并为一个新的线性表Lc,且Lc中的数据元素仍按值非递减有序排列。④当指针pa和pb均为到达相应表尾时,则依次比较pa和pb所指向的元素值,从La或Lb中摘取元素值较小的结点插入Lc的最后。算法的时间复杂度和空间度均为O(ListLength(La)+ListLength(Lb))②依次从La或Lb中“摘取”元素值较小的结点插入到Lc表的最后,直至其中一个表变为空为止。③继续将La或Lb其中一个表的剩余结点插入在Lc表的最后。

2024-05-11 15:20:57 363 1

原创 线性表学习05——循环链表和双向链表

循环链表是一种头尾相接的链表,即表中最后一个结点的指针域指向头结点,整个链表形成一个环。优点:从表中任一结点出发均可找到表中其他结点。在单链表的每个结点里再增加一个指向其直接前驱的指针域prior,这样链表中就形成了有两个不同方向不同的链。

2024-05-10 15:24:17 765

原创 数据结构学习02——算法和算法分析

对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中每个指令表示一个或多个操作。算法中基本语句重复执行的次数是问题规模n的某个函数f(n)时,,它表示随着n的增大,算法执行的时间增长率和f(n)的增长率相同,称作渐近时间复杂度,简称时间复杂度。由嵌套最深层语句的频度所决定。n越大,算法的执行时间越长。①排序:n为记录数②矩阵:n为矩阵的阶数③多项式:n为多项式的项数④集合:n为元素个数⑤树:n为树的结点个数⑥图:n为图的顶点数或边数例题分析:i=1;i=i*2。

2024-04-26 20:07:59 399 1

原创 线性表学习04——单链表的几个补充算法

链表仍存在,但链表中无元素,成为空链表(头指针和头结点仍然在)空表:链表中无元素,称为空链表。(头指针和头结点仍然在)①算法思路:依次释放所有结点,并将头结点指针域设置为空。①算法思路:从首元结点开始,依次计数所有结点。①算法思路:从头指针开始,依次释放所有结点。①算法思路:判断头结点指针域是否为空。销毁:链表销毁后不存在。

2024-04-26 19:08:57 265 1

原创 线性表学习03——单链表

用一组物理位置任意的存储单元来存放线性表的数据元素。注:这组存储单元既可以是连续的,也可以是不连续的。·链式存储结构:结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻线性表的链式表示又称为非顺序映像或链式映像。①非空表L——>(头结点)——>a1——>a2——>a(n)——>②空表L——>(头结点)typedef struct Lnode{ //声明结点的类型和指向结点的指针类型//结点的数据域//结点的指针域。

2024-04-18 22:47:05 771 1

原创 线性表学习02——线性表的顺序表示和实现

P(n)(x)=p1x的e1次方+p2x的e2次方+...+p(m)x的e(m)次方:线性表P=((p1,e1),(p2,e2),...,(pm,em))//多项式可能达到的最大长度//多项式非零项的定义float p;//系数int e;//指数//存储空间的基地址int length;//多项式中当前项的个数}SqList;//多项式的顺序存储结构类型为SqList实例② 图书表的顺序存储结构类型定义//图书表可能达到的最大长度//图书信息定义//图书ISBN。

2024-04-14 17:07:45 1362 1

原创 线性表学习01

线性表A=((7,0),(3,1),(9,8),(5,17)) 线性表B=((8,1),(22,7),(-9,8))A(X)=7+3X+9X的8次方+5X的17次方,B(X)=8X+22X的7次方-9X的8次方。A(X)=7+3X+9X的8次方+5X的17次方,B(X)=8X+22X的7次方-9X的8次方。如a1,a2,...a(i-1),a(i),a(i+1),...,a(n)a(i-1)是a(i)的直接前驱,a(i+1)是a(i)的直接后继。

2024-04-10 22:01:13 679

原创 数据结构学习01

1.定义:是能输入计算机且能被计算机处理的各种符号的集合。2.分类①数值型的数据:整数、实数等。(可加减乘除,开方,乘方等)②非数值型的数据:文字、图像、图形、声音(不可加减乘除等)

2024-04-09 23:41:20 781

原创 DNSLog注入及SQLmap工具使用

DNSLog就是储存在DNS上的域名相关的信息,它可以记录我们对域名或者IP的访问信息,类似一个日志文件。比如说现在有一个xxx.aaa.com的域名(从右到左分别为顶级域名、二级域名、三级域名),将其域名设置对应的ip1.1.1.1我们向dns服务器发起aaa.com的解析请求时,DNSlog就会记录下对aaa.com的解析,那么解析值就为1.1.1.1,这样被记录下来的过程就是DNSLog。Sqlmap是一个使用python语言开发的开源的渗透测试工具,可以利用SQL注入漏洞,获取数据库服务器的权限。

2024-03-18 00:36:47 1019

原创 SQL的联合查询注入学习

SQL是操作数据库数据的结构化查询语句,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。程序没有对用户输入数据的合法性进行验证和过滤,导致SQL查询语句被恶意拼接从而产生SQL注入。攻击者可以在事先定义好的查询语句的结尾上添加额外的SQL语句,从而对数据库服务器执行非授权的任意查询,获得相应的数据信息。4、分类:①GET注入:注入点在URL中②POST注入:注入点在POST提交的数据中③Head头注入:注入点在请求头中①有回显注入(显错注入):执行语句后可以把具体内容反馈出来。

2024-03-10 21:16:17 1022 1

空空如也

空空如也

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

TA关注的人

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