E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
数据结构学习笔记
数据结构学习笔记
:时间复杂度
数据结构学习笔记
:时间复杂度1、大O函数O——OrderofMagnitude——同阶2、常用大O函数3、常用大O函数图像4、案例演示a=500b=600c=100foriinrange(n):forjinrange
howard2005
·
2020-08-17 22:44
数据结构
数据结构学习笔记
——时间复杂度预估
引言一个算法的好坏通常是评估其运行时的时间复杂度和空间复杂度。算法的时间代价就是指算法执行时花费CPU的时间,与参与运算的数据量有关,通常很难事先计算得到。算法的时间效率指算法的执行时间随问题的增长而增长的趋势,通常采用时间复杂度来度量。算法时间复杂度的渐进表示通常用大O表示法,大O表示法给出了函数f(x)的严格上限。其定义为:预估指南一些通用规则通常能帮助我们确定一个算法的运行时间。循环:循环体
ch_casia
·
2020-08-17 21:12
数据结构学习笔记
(一)复杂度分析技巧
一、什么是复杂度分析数据结构和算法本身解决如何让代码运行得更快,如何让代码更省存储空间。所以执行效率是算法一个非常重要的考量指标。衡量算法代码的执行效率就是复杂度分析,复杂度分析分为时间、空间复杂度分析二、为什么要复杂度分析在运行一段代码的时候可能因为环境的不同执行的效率也不同,比如,分别用i9处理器和i3处理器来运行同一段代码,不用说,i9处理器要比i3处理器执行的速度快很多。还有就是数据规模不
Share_Ait
·
2020-08-17 20:10
数据结构
数据结构学习笔记
—图---图的连通性、顶点间的路径
在无向图中,如果从顶点Vi到顶点Vj有路径,则称Vi和Vj连通。若图中任意两个两个顶点之间都连通——连通图。极大连通子图——连通分量。(无向图)从一个顶点开始作为一个子图,逐个添加和这个子图有边相连的顶点,直到所有相连的顶点都被纳入到图中所生成的子图就是一个极大连通子图。完全图——任意两个顶点之间都有边或弧对于无向图,有n个顶点,则有有n(n-1)/2条边;对于有向图,有n个顶点,则有n(n-1)
流氓小丑
·
2020-08-17 20:55
算法
数据结构
数据结构学习笔记
在看《算法(第4版)》这本书的过程中,作者将算法与数据结构结合进行讲解,阅读的过程中,意识到数据结构非常的重要。比如在第三章讲解查找算法时,适时的引入二叉树,高效的查找元素和避免了如线性表添加新元素需改变其他元素位置。高效的算法有赖于合理的数据结构,这本书给我很大影响之一是把数据结构和算法当为不可分离的整体来考虑,数据结构是一个好的算法的必要条件,所以先看的第一个概念是算法复杂度。算法的时间复杂度
DKE_LS
·
2020-08-17 19:09
数据结构学习笔记
003什么是空间复杂度
自述首先,该篇文章不会长篇大段的去解释书本上关于空间复杂度的定义和描述字眼。而是,给你一段程序,自己去体悟空间复杂度的核心含义与思想。空间复杂度问题:求1+2+3+…+n的和!c语言代码片段1:#includeusingnamespacestd;main(){intn,i;longlongsum=0;cin>>n;for(i=1;iusingnamespacestd;longlongsum(int
一抱女友就犯困
·
2020-08-17 18:36
大话数据结构
数据结构
算法
c语言
数据结构学习笔记
002什么是时间复杂度
基本概念时间复杂度:计算机解决问题的时间,随着问题规模的扩大,运行时间上的变化规律(或者说:时间是怎么变化)。一般情况下,时间复杂度都是指算法运行时间的最坏情况。补充时间复杂度一般用大写的O来表示,后面用小括号包裹时间变化规律。比如:1、访问数组某个位置的值,其时间复杂度为O(1)。解析:因为,数组可以通过下标直接定位到数据原素,无论数值的长度是多少(即:问题规模的扩大),均可以通过下标直接访问得
一抱女友就犯困
·
2020-08-17 18:35
大话数据结构
数据结构
算法
数据结构学习笔记
之查找基本概念与线性结构的查找算法
查找基本概念与线性结构的查找算法一、基本概念1、查找的定义2、查找表3、静态查找表与动态查找表4、关键字与平均查找长度二、针对线性结构的查找算法1、顺序查找1.1、一般线性表的顺序查找1.2、有序表的顺序查找2、折半查找3、分块查找一、基本概念1、查找的定义在数据集合中寻找满足所给条件的数据元素的过程,称之为查找;查找的结果有且只有两种:成功和失败,换句话就是:要么从集合中找到至少一个满足条件的元
御承扬
·
2020-08-17 14:38
数据结构学习笔记
数据结构学习笔记
之排序
排序一、基本概念1、排序的定义2、排序算法的分类3、排序算法衡量标准二、内部排序1、插入排序1.1、直接插入排序1.2、折半插入排序1.3、希尔排序2、交换排序2.1、冒泡排序2.2、快速排序一、基本概念1、排序的定义排序,我是如此定义的:排序是一种操作,一种对原本无序的序列通过按关键字进行元素值交换达到增序排列或降序排列的操作。2、排序算法的分类根据数据元素是否完全在内存中分为:内部排序和外部排
御承扬
·
2020-08-17 14:38
数据结构学习笔记
数据结构学习笔记
之图的经典应用
图的经典应用一、最小生成树1、基本概念2、性质3、算法3.1、Prim算法3.2、Kruskal算法二、最短路径1、基本概念2、分类3、Dijkstra算法3.1、基本思想3.2、辅组数组3.3、基本步骤2.4、示例3、Floyd算法3.1、基本思想3.2、示例如下:三、拓扑排序1、DAG图和AOV网2、拓扑排序2.1、步骤2.2、实现代码3、逆拓扑排序4、注意事项四、关键路径1、AOE网1.1、
御承扬
·
2020-08-17 14:38
数据结构学习笔记
数据结构学习笔记
之B树与B+树
B树与B+树一、B树1、B树的概念2、B树的定义3、重要结论4、B树的高度5、B树的查找6、B树的插入6.1、定位6.2、插入7、B树的删除7.1、删除的关键字不在终端结点7.2、删除的关键字在终端结点二、B+树1、定义2、与B树的差异一、B树1、B树的概念B树,即多路平衡查找树。B树中所有节点的孩子个数的最大值称为B树的阶。2、B树的定义一棵m阶的B树或为空树,或者满足下列性质:1)树中每个节点
御承扬
·
2020-08-17 14:38
数据结构学习笔记
数据结构学习笔记
之散列表
散列表一、基本概念1、散列函数:2、冲突与同义词3、散列表二、构造散列函数1、直接定址法2、除留余数法3、数字分析法4、平方取中法三、处理冲突的操作1、开放定址法1.1、线性探测法1.2、平方探测法1.3、再散列法1.4、伪随机序列法1.5、注意事项2、拉链法四、散列查找五、影响散列表效率的因素一、基本概念主要有散列函数和散列表的定义,以及散列函数的关键字冲突现象。1、散列函数:将查找表中关键字映
御承扬
·
2020-08-17 14:07
数据结构学习笔记
数据结构学习笔记
(一):稀疏数组
数据结构学习笔记
(一):稀疏数组一、稀疏数组的概念例如,五子棋程序中,有存盘推出和续上盘的功能。如果要实现这个功能,最简单的方法就是用二维数组储存。
不会爬墙的岛田
·
2020-08-16 22:29
数据结构与算法
数据结构
算法
数据结构学习笔记
----[小白版]
数据结构学习笔记
本篇内容是根据郝斌老师数据结构的学习笔记如有侵权或总结中有任何错误愿意通过邮箱,QQ联系我的话,本人将万分感谢。
追梦小男孩_zj
·
2020-08-16 09:09
算法和
数据结构学习笔记
------基础概念
1.基本程序要素Python程序包含一个或多个模块。模块只是Python代码的一个文件,其中包括语句、函数定义和类定义。简短的Python程序也称为脚本,可以包含在一个模块当中。而较长的或较为复杂的程序,通常包含一个主模块和多个支持模块。主模块包含了程序执行的起点,支持模块包含了函数和类的定义。Python语句可分为输入语句、输出语句、赋值语句、循环和条件语句。只要对于基本语句熟练掌握,Pytho
蒙蕤
·
2020-08-16 05:22
算法和数据结构
数据结构学习笔记
-线性表顺序存储(C语言实现)
写了一天,终于将线性表的顺序存储实现了,顺便恶补了一下指针内容。顺序存储,适合做查询,链式存储适合做增删。添加方法主要就是将线性表从后往前遍历,依次往后挪一位,直到空出想要插入的位置,删除方法就是将线性表从要删除的地方往后遍历,依次往前挪一位。#include#include#defineMAXLENGTH20typedefintEletype;typedefstruct{ Eletypedat
Daydream Mr.
·
2020-08-16 04:32
数据结构
数据结构学习笔记
(4)——队列
队列1什么是队列队列(Queue):具有一定操作约束的线性表;插入和删除操作:只能在一端插入,而在另一端删除。数据插入:入队列(AddQ)数据删除:出队列(DeleteQ)先来先服务先进先出:FIFO2队列的抽象数据类型类型名称:队列(Queue)数据对象集:一个有0个或多个元素的有穷线性表。操作集:长度为MaxSize的队列QQueue,队列元素itemElementTypeQueueCre
鲑鱼683
·
2020-08-16 03:00
数据结构和算法
严蔚敏版
数据结构学习笔记
(5):串
串(string),由字面意思理解就知道是和字符串有关的一种数据结构,它是由零个或者多个字符组成的有限序列,一般记为s=‘a1a2a3……an’(n>=0);其中s为串名,用单引号括起来的字符序列是串的值,ai可以是字母,数字,或者是其他字符;只有两个串的值相等才能称两个串是相等的,串值必须要用两个单引号括起来,但是单引号并不包含在串中,单引号的作用只是避免与变量名或者数的常量混淆。由多个空格组成
三年七班陈信宏
·
2020-08-16 00:29
严蔚敏版数据结构代码实现
数据结构
严蔚敏版
数据结构学习笔记
(2):线性表的链式表示和实现
线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的也可以是不连续的)。也就是通过指针实现了物理不相邻的存储结构存放逻辑上相邻的数据元素。对线性表的一个数据元素ai来说,除了要存储其本身的数据信息之外,还需要存储一个指示其直接后继的信息(一般来说是一个指针信息)。这两部分组成数据元素ai的存储映象,称为结点(node).他有两个域,存储数据元素的信息的数据
三年七班陈信宏
·
2020-08-16 00:29
严蔚敏版数据结构代码实现
严蔚敏版
数据结构学习笔记
(4):队列
和上次的栈相反,队列是一种先进献出的线性表(FIFO);它只允许在它的一端进行删除操作,而在另一边进行插入操作。在队列里面,允许插入的一端我们称之为队尾,允许删除的一端称为队头;队列和栈的基本操作差不多,也有八个,不同的一点是删除操作是在表的头部进行而不是尾部;ADTQueue{InitQueue(&Q);DestroyQueue(&Q);ClearQueue(&Q);QueueEmpty(Q);
三年七班陈信宏
·
2020-08-16 00:29
严蔚敏版数据结构代码实现
数据结构
严蔚敏
数据结构学习笔记
二.线性表
第二章线性表线性结构是一个数据元素的有序(次序)集线性结构的基本特征:1,集合中必存在唯一的一个"第一元素";2,集合中必存在唯一的一个"最后元素";3,除最后元素在外,均有唯一的后继;4,除第一元素之外,均有唯一的前驱。2.1线性表的类型定义(抽象数据类型)基本操作中的ListEmpty(L),ListLength(L),PriorElem(L.cur_e,&pre_e),NextElem(L.
geting
·
2020-08-15 23:57
算法
C++算法与
数据结构学习笔记
------单链表实现多项式
//使用单链表实现了多项式的加减和乘法。#includetemplateclassList;templateclassNode{friendclassList;private:Tcoef,exp;Node*next;};templateclassList{private:Node*first;public:List(){first=0;}~List();boolEmpty()const{retur
Frank_Jay
·
2020-08-15 21:14
C/C++
严蔚敏版
数据结构学习笔记
(1):线性表的顺序表示和实现
线性结构的特点:在数据元素的非空有限集合中(1)存在唯一的一个被称作“第一个”的数据元素,(2)存在唯一的一个被称作“最后一个”的数据元素,(3)除第一个外,集合中的每一个数据元素均只有一个前驱,(4)除最后一个数据元素外,每一个元素均只有一个后继。一个线性表是n个数据元素的有限序列。线性表的数据元素个数n(n>=0)定义为线性表的长度,n=0时称为空表。对一个线性表不仅可以进行访问,还可以进行插
三年七班陈信宏
·
2020-08-15 21:52
严蔚敏版数据结构代码实现
python
数据结构学习笔记
-2016-11-02-02-迷宫问题
7.4迷宫问题7.4.1回溯蛮力法(brute-forcemethod):穷举所有可能,一一验证。这种方法效率较低。回溯法(backtracking):通过部分返回来排除解决问题可能途径进而找出正确途径的过程,例如说解决迷宫问题就可以用回溯法。相应的算法称为回溯算法。7.4.2设计解决方案问题细节首先是确定从起点到终点,是否有路径直达;该路径不能出现循环或回路。当我们在迷宫移动一步时,首先不能碰到
mzm1991
·
2020-08-15 02:58
python数据结构
python
数据结构学习笔记
-2016-10-14-01-一维数组
2.1数组结构一维数组(one-dimensionalarray)是多个元素按照一定的顺序,储存在内存的连续的字节当中,并允许对每一个元素的任意访问。对数组中元素的访问,是通过指针来完成。(类似于数学中的下标)2.1.1为什么学习数组数组与python中列表的区别:数组的相关操作较少,而列表的操作较多;(感觉挺牵强的)数组一经创建,其长度不能改变,而列表可以随意增删元素,甚至将另一个列表合并进来,
mzm1991
·
2020-08-15 02:58
python数据结构
树结构的自定义及基本算法(Java
数据结构学习笔记
)
数据结构可以归类两大类型:线性结构与非线性结构,本文的内容关于非线性结构:树的基本定义及相关算法。关于树的一些基本概念定义可参考:维基百科树的ADT模型:根据树的定义,每个节点的后代均构成一棵树树,称为子树。因此从数据类型来讲,树、子树、树节点是等同地位,可将其看作为一个节点,用通类:Tree表示。如下图所示:图:TreeADT模型示意图可采用“父亲-儿子-兄弟”模型来表示树的ADT。如图所示,除
YatKam
·
2020-08-14 17:55
算法
java
数据结构
算法
树结构
数据结构学习笔记
之一:链表
原貼作者BOLG:http://blog.csdn.net/woolceo/许多人都知道链表(C语言)都是借助指针来实现链接的,同样许多人也知道java语言是没有指针的,所以很多人可能很理所当然的认为"java没有数据结构",我想这种想法是错误的.程序=算法+数据结构,任何语言都离不开数据结构(唉,这么简单一个道理我也是最近才悟出的,惭愧啊...).下面我就谈谈java语言的数据结构.代码一:链表
冯立彬
·
2020-08-14 17:21
JAVA转贴
数据结构学习笔记
(4)二叉树的创建和中序遍历输出节点数据的c++实现
输入的先序数据为ABC##DE#G##F###输入数据的二叉链表图为:按照中序的规则,中序输出预期为:CBEGDFA代码如下://二叉树.cpp:实现二叉树的创建和中序遍历输出节点数据。//#include"stdafx.h"#include"type.h"#include"stack.h"usingnamespacestd;templateclassBinode{public:TElemType
qq_28224015
·
2020-08-14 13:18
数据结构
数据结构
二叉树
c
数据结构学习笔记
(3)串的插入的c++实现
实现了向一个字符串中插入另一个字符串,这边的字符串时自己定义的类型。如再aasdasd中的第2个位置插入ppp,就变为aapppsdasd;//HSTRING.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include"type.h"#include#include#includeusingnamespacestd;classHString{public:HStr
qq_28224015
·
2020-08-14 13:47
数据结构
C语言
数据结构学习笔记
这几天开始了对数据结构的学习,内容较多较杂,理解起来也颇为困难,故记录下学习中的笔记什么是数据结构数据结构是一门研究数据之间关系和操作的学科,而非计算方法数据结构的基本概念数据:所有能够输入到计算机中去描述失误的符号数据项:有独立含义的数据最小单位,也叫域数据元素:数据的基本单位也叫节点、记录数据结构:数据元素和数据关系的集合算法:数据结构所具备的功能,解决特定问题的方法数据结构的三个方面数据的逻
神奇小贝
·
2020-08-14 10:26
学习笔记
c语言
算法与
数据结构学习笔记
(5):图的最小生成树(普里姆算法和克鲁斯卡尔算法)
文章目录最小生成树1.普里姆算法(Prim)2.克鲁斯卡尔算法(Kruskal)最小生成树定义:构造连通网的最小代价生成树下面两种算法不能处理有向图,克鲁斯卡尔算法在边数少时效率高(适用与稀疏图),普里姆算法对于稠密图效率好一些。1.普里姆算法(Prim)(1)算法思路从连通网(带权连通图)的任意顶点A开始,将该顶点放入集合V中,然后从与A相连的顶点中找到一个顶点B,使得边的权值最小,将B也放入集
光脚小孩
·
2020-08-14 07:07
#
算法与数据结构基础
数据结构学习笔记
(20)---图的应用(生成树与最小生成树)
上一篇博客写了图的基本存储于遍历,在此基础上,此篇博客将会介绍图的主要应用—–生成树与最小生成树。(一)生成树定义:我总感觉书上定义比较繁琐,因此就自己简单定义了一下(可能不对哦),生成树其实就是:对于一棵树G,若顶点数为n,则在原来图的基础上把边删除到n-1条边且能连通各点就是生成树。,注意生成树不唯一例如:利用遍历方法可以求得生成树,以邻接矩阵为存储方式代码如下::intvisit[MAXSI
KayeJohn
·
2020-08-14 07:37
Date
Structuress
数据结构
遍历
应用
数据结构学习笔记
(8.循环队列与链队列)
本节知识点:1.队列的概念:a.队列也是一种特殊的线性表,队列仅在线性表的两端进行操作,队头:取出数据元素的一端、队尾:插入数据元素的一端!b.队列的性质:先进先出(FIFO)对于普通的链式队列和顺序队列来说,具体的实现方式跟链式栈和顺序栈一样,只不过无所谓哪边是队列头、哪边是队列尾。因为时间复杂度必然有一端为O(1),另一端为O(N)!对于这样的复杂度,我们就应该想办法使它都降到O(1),所以就
qq418674358
·
2020-08-14 07:12
数据结构(c语言描述)
数据结构学习笔记
Day4-队列(用java实现)
一、说一下队列1.什么是队列?只能在一端进行插入,在另一端进行删除操作的线性表。插入的一端叫做队头,进行删除的一端叫做队尾。插入操作叫进队,删除操作称为出队。2.队列的特点先进先出3.队列的存储结构顺序队和链队二、用java实现顺序队(数组实现)packagemyStudy.dataStructure.day4;importjava.util.Arrays;/****@description队列(
申仁峰
·
2020-08-13 17:32
java
数据结构
数据结构学习笔记
(十)哈希表(散列表)
一、哈希表(散列表)散列表,也称哈希表,是一种实现字典操作的有效数据结构。它用一个散列函数把一个数对映射到一个哈希表的具体位置。如果数对p的关键字是k,散列函数为f,那么理想情况下,p在散列表中的位置为f(k)。暂时假定散列表的每一个位置最多能够存储一个记录,这种情况也称为直接寻址表。当关键字的全域U比较小时,直接寻址是一种简单有效的技术。直接寻址表如下图11-1所示。但是如果关键字的范围太大,使
龙之国度
·
2020-08-13 13:22
数据结构
数据结构
数据结构学习笔记
(七)竞赛树
一、竞赛树假设有n个选手参加一场网球比赛,比赛规则是“突然死亡法”,即只要输一场就会被淘汰。一对一进行比拼,最后只剩下一个选手保持不败。下图13-1中显示了比赛过程,有a~h一共8名选手。这个比赛使用二叉树进行表示,每一个外部节点表示一名选手,每一个内部节点表示一场比赛,该节点的孩子表示比赛的选手。在同一层的内部节点代表一轮比赛,可以同时进行。在第一轮比赛中,对阵的选手有ab之间、cd之间、ef之
龙之国度
·
2020-08-13 13:22
数据结构
数据结构
数据结构学习笔记
(八)字典、及其线性表描述
一、字典字典是一些形如(k,v)的数对所组成的集合,其中k是关键字,v是与关键字k对应的值。任意两个数对,其关键字都不相等。比如一个选修某一课程的名单是一个字典结构,关键字是学号,对应的值包含名字、性别、分数等等信息。有关字典的操作有:确定字典是否为空确定字典有多少数对寻找一个指定了关键字的数对插入一个数对删除一个指定了关键字的数对一个多重字典和上诉字典类似,只是两个或更多的数对可以具有相同的关键
龙之国度
·
2020-08-13 13:22
数据结构
数据结构学习笔记
(二)线性表及其C++实现
一、线性表的定义线性表是最基本、最简单的数据结构。它是零个或多个数据元素的有限序列。由相同数据类型的n(n≥0)个元素组成的有限序列,一般表示为L=(a1,a2,...,ai,ai+1,...,an)。数据元素的个数n定义为表的长度。当n=0时称为空表。它强调:表中的元素个数有限;表中的元素具有逻辑上的顺序性集合中必存在唯一的一个“第一元素”,称为表头;集合中必存在唯一的一个“最后元素”,称为表尾
龙之国度
·
2020-08-13 13:51
数据结构
数据结构学习笔记
(五)二叉树及其C++实现
一、树的基本概念树是一种层次结构,表达一对多的关系树的节点:包含数据元素,还有指向其他节点的指针:孩纸指针,父节点指针叶子节点,根节点,孩纸节点,双亲节点,兄弟节点,堂兄弟节点,祖先节点,子孙节点节点的度:节点分支的个数树的度:所有节点的度的最大值树的路径:根节点到该节点上的所有节点连接起来的层次:从根节点开始定义,根为第一层,根的孩纸为第二层,若节点中在第k层,其子树的根在第k+1层树的深度(高
龙之国度
·
2020-08-13 13:51
数据结构
数据结构学习笔记
(九)跳表、字典的跳表描述
一、跳表在使用有序链表描述的n个数对的字典中进行查找,至多需要n词比较。如果使用折半查找的思想,使用跳表来描述,可以大大加快搜索的速度。在下图10-1中,a表示的有序链表有7个数对,该链表增加一个头结点和一个尾节点。对该链表进行搜索最多需要7次关键字的比较。如果像b那样,在中间的节点中加入一个指针,那么比较时先和这个中间节点比较,在决定在前半部分还是后半部分继续搜索,因此搜索最多需要4次关键字的比
龙之国度
·
2020-08-13 10:25
数据结构
数据结构学习笔记
堆与哈夫曼树与并查集
目录一、堆1.堆是什么2.最大堆的操作函数(1)空最大堆的创建(Create函数)(2)最大堆的插入(Insert函数)(3)最大堆的删除(Delete函数)(3)从已有元素创建最大堆二、哈夫曼树1.哈夫曼树是什么2.哈夫曼树的操作3.哈夫曼树的应用——哈夫曼编码三、集合~并查集板子~一、堆1.堆是什么堆(Heap),是一个可以被看做一棵完全二叉树的数组对象,有以下性质:任意节点的值是其子树所有结
余cos
·
2020-08-10 20:56
数据结构
数据结构学习笔记
(1)
基本概念和术语笔记来自《数据结构与C语言(严蔚敏_吴伟民)》数据:指所有能输入到计算机中并被计算机程序处理的符号的总称。如图像,声音等都可以通过编码归之于数据。数据元素:数据的基本单位。一个数据元素可由若干个数据项组成,如一本书的目录作为一个数据元素,而目录的每一项都为一个数据项。数据项是数据的不可分割的最小单位。数据对象:性质相同的数据元素的集合,是数据的一个子集。数据结构:相互之间存在一种或多
我还在_
·
2020-08-10 20:31
笔记
数据结构学习笔记
(12.递归的应用之八皇后回溯算法)
本节知识点:1.递归与回溯:a.回溯算法的基本思想:从问题的某一种状态出发,搜索可以到达的所有状态。当某个状态到达后,可向前回退,并继续搜索其他可达状态。当所有状态都到达后,回溯算法结束!b.对于回溯算法,在前面KMP匹配中就利用了这个思想,只不过当时KMP中定义了一个node数组(起到了一个地图的作用,记录了每种回溯情况的可能)。而这节中,是利用函数的活动对象保存回溯算法的状态数据,因此可以利用
qq418674358
·
2020-08-10 18:15
数据结构(c语言描述)
【
数据结构学习笔记
】——根据中缀表达式构建二叉树并输出
要求输入一个中缀表达式,构造表达式树,以文本方式输出树结构。输入:例如,输入a+b+c*(d+e)输出:以缩进表示二叉树的层次,左(根),右(叶),上(右子树),下(左子树)分析我们有两个核心的问题需要解决,一是如何按照中缀表达式来构建二叉树,二是如何用这种形式进行输出。放码过来postfix.h我们知道由后缀表达式生成二叉树很简单,所以我们需要做的第一步就是讲中缀表达式转换为后缀表达式。中缀表达
Kepp
·
2020-08-09 08:53
数据结构
[Notes] 可持久化
数据结构学习笔记
可持久化数据结构就是使数据结构可以返回历史版本一般的实现方法是新建有修改的点其他点与上一版本共用这样做到空间复杂度带上一个或两个log主席树(可持久化线段树、函数式线段树)每次新增一条从叶子到根的链因为有修改学习参考资料:MetalSeed:主席树介绍qian99:主席树学习笔记Seter:1901:Zju2112DynamicRankings徐亦轲:主席树题目练习:[主席树套堆区间修改标记永久化
里阿奴摩西
·
2020-08-08 22:41
Notes
可持久化数据结构
数据结构学习笔记
--AVL树
好久没更新了,今天来讲二叉树的一个重要应用:二叉搜索树。这次介绍的是平衡二叉树(也叫AVL树),刚开始本来想自己写这篇文章的,书上关于AVL树这里讲得很复杂(我是看了半天才看懂)。好了,废话少说,一起来看吧~平衡二叉树(AVL树)这个恐怕是整个《数据结构》教科书里面最难的和最“没用”的数据结构了(现在的教科书还有部分算法内容)。说它没用,恰恰是因为它太有用——有着和普通的二叉搜索树完全一样的接口界
timercrack
·
2020-08-08 21:44
数据结构学习笔记
数据结构学习笔记
——第5章 树与二叉树
数据结构学习笔记
——第5章树与二叉树5树与二叉树5.1树的基本概念5.1.1树的定义5.1.2基本术语5.1.3树的性质5.2二叉树的概念5.2.1二叉树的定义及其主要特性二叉树的定义几个特殊的二叉树二叉树的性质
狐十六
·
2020-08-08 15:34
数据结构
python
数据结构学习笔记
-2016-10-27-02-使用单链表实现包ADT
6.3使用单链表实现包ADT6.3.1实现#-*-coding:utf-8-*-#使用单链表实现包ADTclassBag(object):def__init__(self):self._head=None#底层单链表头指针self._size=0#追踪单链表长度def__len__(self):returnself._sizedef__contains__(self,target):curNode
mzm1991
·
2020-08-08 14:49
python数据结构
数据结构学习笔记
-树
树是n个结点的有限集,当n为0的时候,该树为空树。在任意一个非空树中,有且仅有一个根结点(root)。当n>1时,其余结点可分为m个互不相交的有限集。其中每一个集合本身又是一棵树,并且成为根(root)的子树(subtree)。树的结点包含一个数据元素和若干个指向其子树的分支。结点拥有的子树的数量称为结点的度(degree)。度为0的节点称为叶子(leaf)结点或者终端结点。度不为0的节点成为非终
Daydream Mr.
·
2020-08-07 22:37
数据结构
数据结构学习笔记
-串(C语言实现)
串由零个或多个字符组成,说白了就是字符串。串的存储方式相对于线性表来讲有些不同,他分为以下几种:顺序存储、堆分配存储、链式存储。顺序存储通常在数组中的头元素存放字符串长度。堆分配存储通常会动态分配空间。链式存储分为两种,一种是每个节点存放一个字符(比较浪费空间),另一种则是每个节点存放多个字符,如果字符不是刚好,就用#代替。(c中字符串定义会有以下几种形式:字符串常量"hello",char数组c
Daydream Mr.
·
2020-08-07 22:35
数据结构
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他