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
【数据结构笔记】
数据结构笔记
——栈和队列
好好学习,天天向上本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star⭐⭐⭐⭐⭐转载请注明出处!⭐⭐⭐⭐⭐链接:https://blog.csdn.net/weixin_43461520/article/details/123931280⭐⭐⭐⭐⭐转载请注明出处!⭐⭐⭐⭐⭐3.1栈、顺序栈、链栈、共享栈3.1.1栈的定义及基本操作
Robod丶
·
2022-04-02 23:00
数据结构笔记
——线性表
好好学习,天天向上本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star⭐⭐⭐⭐⭐转载请注明出处!⭐⭐⭐⭐⭐链接:https://blog.csdn.net/weixin_43461520/article/details/123783563⭐⭐⭐⭐⭐转载请注明出处!⭐⭐⭐⭐⭐数据结构三要素——逻辑结构、数据的运算、存储结构(物理结构
Robod丶
·
2022-03-27 22:00
数据结构笔记
:Huffman树的构造与WPL值的计算
Huffman树是二叉树中的一个重要运用,在信息编码方面起着重要作用。本篇博客主要介绍Huffman树构造的过程和其WPL值的计算方法。何为Huffman树Huffman树是一种最优二叉树。一棵二叉树树中一个结点到另一个结点之间的分支构成了这两个结点之间的路径。结点的带权路径长度是该结点到根结点之间路径长度与结点上权值的乘积,树的带权路径长度则是所有叶子结点的带权路径长度之和,带权路径长度记为WP
Donald_Shallwing
·
2022-03-14 07:04
计算机基础理论
Java
数据结构笔记
Java数据结构学习笔记一、线性结构(一)常见线性结构数组队列链表栈(二)线性结构特点线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据兀素以及相邻元素的地址信息线性结构常见的有:
王林-wlin
·
2022-03-02 15:15
数据结构笔记
数据结构
java
链表
算法
王道
数据结构笔记
王道
数据结构笔记
2.2线性表的顺序表示顺序表的实现——动态分配顺序表的特点总结2.2线性表的顺序表示顺序表的实现——动态分配由于需要将数据复制到新的区域因此时间开销大#include#defineInitSize10
Ming6419
·
2022-02-25 14:54
数据结构笔记
数据结构
《王道》
数据结构笔记
整理2022
数据结构第一章:绪论1.1数据结构的基本概念1.2数据结构的三要素1.3算法的基本概念1.4算法的时间复杂度1.5算法的空间复杂度第二章:线性表2.1线性表的定义2.2顺序表的定义2.2.1静态分配:2.2.2动态分配2.2顺序表的基本操作1.插入操作:平均时间复杂度O(n)2.删除操作:平均时间复杂度O(n)3.按位查找(获取L表中第i个位置的值):平均时间复杂度O(1)4.按值查找:平均时间复
池鱼之殃
·
2022-02-25 14:11
数据结构
【数据结构与算法】全套
数据结构笔记
【持续更新】
目录【数据结构与算法】线性表的重要基本操作与代码实现【C语言版】【数据结构与算法】线性表的链式表示和实现,超详细【C语言版】【数据结构与算法】Leetcode2:两数相加【链表学习】【数据结构与算法】栈与队列【C语言版】博主更多精彩文章如下:【数据结构与算法】线性表的重要基本操作与代码实现【C语言版】https://blog.csdn.net/qq_45696377/article/details
毛_三月
·
2021-10-25 23:09
数据结构
数据结构
算法
c语言
leetcode
链表
数据结构笔记
十三:二叉树
说明:本笔记依照《王道论坛-数据结构》视频内容整理。一、基本概念二叉树是n(n≥0)个结点的有限集合。(1)或者为空二叉树,即n=0。(2)或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一颗二叉树。特点:(1)每个结点至多只有两颗子树(2)左右子树不能颠倒(二叉树是有序树)二叉树是递归定义的数据结构。二、二叉树的五种状态三、特殊的二叉树四、二叉树性质五、二叉树
lqonlylove
·
2021-10-21 09:06
数据结构与算法
数据结构
算法
数据结构笔记
十二:树
说明:本笔记依照《王道论坛-数据结构》视频内容整理。一、基本概念树是n(n≥0)个结点的有限集合,n=0时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足:(1)有且仅有一个特定的称为根的结点。(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集合T1、T2、……、Tm,其中每个集合本身又是一棵树,并且称为根节点的子树。非空树特点:有且仅有一个根结点没有后继的结点称为“叶子结点”(
lqonlylove
·
2021-10-21 08:45
数据结构与算法
数据结构
算法
数据结构笔记
十一:串
说明:本笔记依照《王道论坛-数据结构》视频内容整理一、基本概念串,即字符串(string)是由零个或多个字符组成的有限序列。一般记为S='a1a2……an'(n≥0)。其中,S是串名,单引号括起来的字符序列是串的值;ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n=0时的串为空串。字串:串中任意个连续的字符组成的子序列。主串:包括字串的串。字符再主串中的位置:字符在串中的序号。子串
lqonlylove
·
2021-10-19 23:03
数据结构与算法
数据结构
算法
数据结构笔记
:线索二叉树
意思是指:单向链表只能知道某节点的后一位,而不能知道前一位是谁,因此发明了双向链表。注意线索二叉树分中序,前序,后序之分。
time_trip
·
2021-10-01 16:27
数据结构
链表
2022王道考研有关
数据结构笔记
第二章线性表2.1线性表的定义和基本操作要点:线性表的基本操作——创销、增删、改查传入参数时,何时要用引用&2.2线性表的顺序表示2.2.1顺序表的定义顺序表的实现———静态分配#include#defineMaxSize10//定义最大长度typedefstruct{intdata[MaxSize];//用静态的“数组”存放数据元素ElemType:intintLength;//顺序表的当前长度
风等
·
2021-09-02 23:26
考研
数据结构
算法
数据结构笔记
(一)
数据结构是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的链式相对于顺序查找效率不高、但是通过指针插入、删除数据的效率高(结构处于动态中),因为数据元素的地址不连续,只需要改变指针指向即可算法和算法分析根据一
02468.
·
2021-08-13 11:55
数据结构
考研
数据结构笔记
——2.线性表的链式表示(复杂链表)
考研
数据结构笔记
——2.线性表的链式表示(复杂链表)双链表单链表存在的不足是,由于其结点中只有一个指向其后继结点的指针,导致单链表只能从头结点依次向后遍历;如果要访问某个结点的前驱节点,则必须从头开始遍历
ribose
·
2021-06-21 12:21
数据结构笔记
-01线性表
线性表的定义结构:1.线性结构:结构中的数据元素之间均满足线性关系(一对一)。图片.png2.由若干个数据项组成的数据元素,称为记录;含有大量记录的线性表称为文件;同一线性表中的元素必须属于同一对象。3.线性表:n个数据元素的有限序列数据元素/结点:原子类型或结构类型线性表长度:线性表中元素个数n位序:各线性元素都有一个确定的位置,即位序非空线性表通常记作:(a1,a2,……ai,ai+1,……a
cean_seven
·
2021-06-20 23:10
redis内部
数据结构笔记
(一)
1简介Redis和其他很多key-value数据库的不同之处在于,Redis不仅支持简单的字符串键值对,它还提供了一系列数据结构类型值,比如列表、哈希、集合和有序集,并在这些数据结构类型上定义了一套强大的API。在Redis的内部,数据结构类型值由高效的数据结构和算法进行支持,并且在Redis自身的构建当中,也大量用到了这些数据结构。1.1简单字符串Sds(SimpleDynamicString,
丹青水
·
2021-06-19 09:01
数据结构笔记
-栈
栈Stack一、存储伪代码typedefstruct{ElementTypedata[MAX_SIZE];//栈的顺序存储inttop;//栈顶指针}Stack;C语言实例(部分代码)#defineMAX_SIZE100typedefintElementType;typedefstruct{ElementTypedata[MAX_SIZE];//栈的顺序存储inttop;//栈顶指针}Stack;
Veahow
·
2021-06-08 21:08
数据结构笔记
-树
树Tree一、存储伪代码typedefstructBiTNode{ElementTypedata;//结点元素数据structBiTNode*lchild,*rchild;//左孩子右孩子指针}*BiTree;C语言实例(部分代码)typedefintElementType;typedefstructBiTNode{ElementTypedata;//结点元素数据structBiTNode*lch
Veahow
·
2021-06-05 04:31
数据结构笔记
(四)——线性表
前面说过,数据结构的类型大方向上来说分为线性结构和非线性结构,下面要说的线性表就是线性结构的一种。(复习一下,前面说过的线性结构有:线性表、栈、队列、字符串、数组和广义表)上一行是课本上的原话,但是感觉这个在逻辑上有一些不清楚的地方,先忘掉上一行的东西吧,看完下面的再回来想想。先来说一下线性表是什么。线性表简单来说就是一个*有限个元素的序列***。本来有一堆山楂,你拿个竹签,一个一个穿起来,就构成
泡泡不爱吃芹菜
·
2021-05-13 14:13
2022王道考研
数据结构笔记
2022王道考研
数据结构笔记
第二章线性表2.1线性表的定义和基本操作要点:线性表的基本操作——创销、增删、改查传入参数时,何时要用引用&2.2线性表的顺序表示2.2.1顺序表的定义顺序表的实现———静态分配
我七窍流水活不久了
·
2021-04-15 22:53
考研数据结构
数据结构
C语言
数据结构笔记
1 | 单链表
一、链表的由来数组是最简单的数据结构,链表复杂一些,二叉树、图则更加复杂的数据结构。数据结构由简单到复杂,它们所要解决的问题也是由简单到复杂。要学习复杂的数据结构就要先学习简单的数据结构,如果简单的数据结构可以解决问题,就没必要使用复杂的数据结构。数组天生的缺陷导致的它解决不了某些问题,所以人们发明了链表。数组的三个特点:一:数组中所有的元素类型必须相同;二:数组在定义的时候需要明确指定数组元素的
嵌入式_Chen
·
2021-04-10 16:29
C语言
数据结构
数据结构
c语言
单链表
数据结构笔记
【基础篇】——二分查找
二分查找二分查找二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0。二分查找的递归与非递归实现最简单的情况就是有序数组中不存在重复元素publicintbsearch(int[]a,intn,intvalue){intlow=0;inthigh=n-1;while(low>1)。因为
Swaggie
·
2021-04-02 10:25
数据结构/算法
数据结构
算法
数据结构笔记
【基础篇】——排序
排序排序如何分析一个排序算法排序算法的执行效率最好情况、最坏情况、平均情况时间复杂度时间复杂度的系数、常数、低阶比较次数和交换(或移动)次数排序算法的内存消耗原地排序算法,就是特指空间复杂度是O(1)的排序算法。排序算法的稳定性这个概念是说,如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。冒泡排序//冒泡排序,a表示数组,n表示数组大小publicvoidbubb
Swaggie
·
2021-04-02 10:46
数据结构/算法
算法
数据结构
排序算法
数据结构笔记
早期人们用计算机解决问题时,通常将实际问题抽象出一个具体的数据模型,然后以此来设计出解决此数据模型的算法,再编写程序,成为一个完整的软件。数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。程序设计=数据结构+算法到底什么是数据结构呢,以下是我结合资料的理解(若有错误希望能够指出)。数据结构有“数据”也有“结构”,那我们先谈一下数据。数据是什么呢?先引
YXXYX
·
2021-03-05 21:27
学习笔记
数据结构
数据结构
数据结构笔记
(三)【图、查找、】
一、图定义1)图G由顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合Eg:1.1)无向图1.2)有向图1.3)简单图&多重图1.4)完全图1.5)子图定义:设有两个图G=(V,E)和G’=(V’,E’),若V是V的子集,且E’是E的子集,则称G’为G的子图,且若V(G)=V(G’)则称G’为G的生成子图Tips:相同的图也
YoRHa.7z
·
2021-01-03 00:13
笔记
数据结构
数据结构笔记
(二)【栈、链栈、队列、串、树、二叉树、哈夫曼树】
一、栈(Stack)定义(1)只允许在一端进行插入和删除的线性表(2)先进后出顺序栈(1)定义(2)初始化(3)进栈Tip:在指针+1前指针为0(指针永远指向栈顶)(4)出栈Tips:出栈在逻辑上删除了元素(指针下移)实际上要删除数据还是在的(5)共享栈链栈(1)定义二、队列(Queue)定义(1)**只允许在一端时插入(队尾)另一端删除(队头)**的线性表实现入队Tips:(1)取模是循环利用已
YoRHa.7z
·
2021-01-02 00:03
笔记
数据结构
2021-01-01
数据结构笔记
一、绪论顺序存储结构在物理上一定是连续的非顺序存储结构在物理上可以是离散的数据的存储结构会影响存储空间分配的方便程度运算的定义是针对逻辑结构的运算的实现是针对存储结构的二、算法算法的五个特征有穷性
YoRHa.7z
·
2021-01-01 01:40
数据结构
算法
02_Python算法+
数据结构笔记
-冒泡排序-选择排序-插入排序-快排-二叉树
b站视频:路飞IT学城https://www.bilibili.com/video/BV1mp4y1D7UP文章目录#11排序介绍#12冒泡排序介绍#13冒泡排序#14选择排序#15插入排序#16快速排序原理介绍#17快速排序代码实现#18快速排序代码实现2#19堆排序前传树的基础知识#20堆排序前传二叉树的基础知识个人博客https://blog.csdn.net/cPen_web#11排序介绍
cPen
·
2020-11-27 08:18
Python算法+数据结构笔记
python
算法
01_Python算法+
数据结构笔记
-时间/空间复杂度-汉诺塔-顺序查找-二分查找
b站视频:路飞IT学城https://www.bilibili.com/video/BV1mp4y1D7UP文章目录#01算法入门概念#02估计算法运行效率与时间复杂度#03简单判断时间复杂度#04空间复杂度#05递归#06汉诺塔问题#07顺序查找#08二分查找介绍#09二分查找代码#10二分查找与线性查找的比较个人博客https://blog.csdn.net/cPen_web#01算法入门概念
cPen
·
2020-11-25 09:04
Python算法+数据结构笔记
python
算法
数据结构
数据结构笔记
15:C/C++中创建(带头结点、不带头结点的)单链表(图解版)
1.尾插法建立带头结点的单链表尾插法思想尾插法的思想其实很简单,通俗来讲就是每创建一个新节点都插到原来链表的后面。代码实现Node*Head,*L,*LNew;/*申请节点*/Head=(Node*)malloc(sizeof(Node));/*带头结点*/L=Head;L->next=NULL;/*初始赋值*/for(inti=0;idata=i;L->next=LNew;LNew->next=
From zero To one
·
2020-09-17 13:56
数据结构笔记——线性表
链表
数据结构
单链表
数据结构笔记
14:两块指针域,向前向后都可以(双链表的定义和基本操作的实现)
双链表的定义和基本操作的实现一、定义1.定义双链表2.初始化双链表3.单链表与双链表的结构区别二、插入1.后插操作2.前插操作三、删除四、查找1.按位查找2.按值查找一、定义1.定义双链表typedefstructDNode{Elemtypedata;structDNode*prior,*next;}DNode,*DLinkList;2.初始化双链表boolInitDLinkList(DLinkL
From zero To one
·
2020-09-17 13:56
数据结构笔记——线性表
数据结构
指针
链表
数据结构笔记
16:递归算法:删除不带头结点的单链表中所有值为x的结点
题目:设计一个递归算法,删除不带头结点的单链表中所有值为x的结点。代码实现//设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点#include"head.h";typedefintElemtype;//定义单链表typedefstructLNode{intdata;structLNode*next;}LNode,*LinkList;//尾插法建立单链表(不带头结点)LinkListLi
From zero To one
·
2020-09-17 13:24
数据结构笔记——线性表
链表
数据结构
单链表
数据结构笔记
10:求两个升序序列的中位数的三种方法(归并排序你会用了吗?)
题目:一个长度为L(L>=1)的升序序列S,处在第[L/2]个位置的数称为S的中位数。例如,若序列S1=(11,13,15,17,19),则S1的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现在有两个等长升序序列A和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。要求:给出算法
From zero To one
·
2020-09-17 13:24
数据结构笔记——线性表
算法
数据结构
数据结构笔记
13:小小指针,大有用处。(单链表的定义和基本操作的实现)
单链表的定义和基本操作的实现一、定义1.定义单链表2.初始化单链表①带头结点②不带头结点3.单链表判空①带头结点②不带头结点4.带头结点单链表与不带头结点单链表区别二、插入1.按位序插入①带头结点②不带头结点2.指定结点的后插元素操作3.指定结点的前插元素操作4.指定结点前插入结点操作三、删除1.按位序删除2.指定结点的删除四、查找1.按位查找2.按值查找五、求链表长度六、单链表的建立1.头插法2
From zero To one
·
2020-09-17 13:24
数据结构笔记——线性表
数据结构
链表
算法
数据结构——双向循环链表模板类
数据结构笔记
(二)今天可是10.1呀,瞧瞧我在干什么?竟然没去大明湖,没去趵突泉……,而是在教室敲数据结构的代码。当然,最终可以把相关知识的代码写出来,并与有梦想的你一块分享、学习,意义也是蛮大的。
sparkle merit
·
2020-09-17 13:59
数据结构与算法
数据结构笔记
---clock()函数和算法时间复杂度分析
基本概念影响问题方法的效率因素解决问题方法的效率,跟数据的组织方式有关解决问题方法的效率,跟空间的利用有关解决问题方法的效率,跟算法的巧妙程度有关程序运行的时间clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clocktick,即“时钟打点”.常数CLK_TCK:机器时钟每秒所走的时钟打点数常用模板#include#include#includeusingna
unique_ZRF
·
2020-09-17 13:59
数据结构笔记
3:顺序表的逆序操作、删除特定值操作
1、将顺序表L中所有元素逆置注意:交换L.length/2次即可//将顺序表中的所有元素逆置//算法思想,依次执行:第一个值和最后一个值互换,第二个值和倒数第二个值互换......#include"head.h"voidReverse(SeqList&L){intn;//用作交换的第三方for(inti=0;i
From zero To one
·
2020-09-17 10:56
数据结构笔记——线性表
算法
数据结构
Java学习——数据结构——数组模拟队列操作
学习尚硅谷韩顺平老师的Java
数据结构笔记
,详情请移步网址队列介绍队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。
qq_41853002
·
2020-09-17 09:52
Java
数据结构
java
再学一遍单链表
学习
数据结构笔记
:本篇主要学习资源来自leetcode单链表长什么样:值;链接到下一个结点的指针。
王大碗Dw
·
2020-09-17 07:03
数据结构与算法
数据结构笔记
——4.队列
四、队列队列:具有一定操作约束的线性表插入和删除操作:只能在一端插入,而在另一端删除,即在一端入队,在另一端出队数据插入:入队数据删除:出队特点:先进先出队列的抽象数据类型描述队列的存储一、队列的顺序存储实现队列的顺序存储结构通常由一个一位数组和一个记录队列头元素位置的变量front以及一个记录队列尾元素的变量rear组成,front指向第一个元素的前面一个位置,rear指向队列最后一个元素的位置
我是你的小饼干
·
2020-09-17 01:22
基础专业课
数据结构
队列
链表
算法
指针
数据结构笔记
——3.堆栈
二、堆栈引例:算术表达式求值算术表达式由两类对象构成:运算数:如2、3、4运算符号:如+、-、*、/由于在运算时,运算符号具有优先级,而计算机是按顺序进行运算,所以需要用特殊表示方法来表示算术表达式后缀表达式:运算符号位于两个运算数之后,运算时从左向右扫描,扫描到一个运算符号时,将该运算符号前面两个运算数做对应运算堆栈:具有一定操作约束的线性表,只在栈顶做插入、删除插入数据:入栈(Push)删除数
我是你的小饼干
·
2020-09-17 01:21
基础专业课
数据结构笔记
:静态链表(C语言)
动态链表之所以称之为动态,因为它的存储管理方便,用的时候申请空间,不用的时候释放掉空间。静态链表的目的就是通过函数实现模拟动态链表中的申请空间和释放空间,同是也要记录下一个节点的位置,那么需要解决几个问题。1.如何模拟动态节点。动态链表需要空间的时候用malloc函数来从计算机系统中申请空间,并返回该空间的地址以便操作,释放空间时用free函数将该空间重新返回给计算机系统中。静态链表中为了模拟这种
繁城落叶
·
2020-09-16 05:24
数据结构
[
数据结构笔记
]分析排序算法的性能
笔记来源王争老师的数据结构与算法之美逆序度=满有序度-有序度冒泡排序冒泡排序分析是否原地排序算法是是否稳定的排序算法是最好情况时间复杂度O(n)逆序度为0,只需要进行一次冒泡操作,就可以结束最坏情况时间复杂度O(n2)要排序的数据刚好是倒序排列的,需要进行n次冒泡操作平均情况下的时间复杂度O(n2)平均情况下,需要n*(n-1)/4次交换操作,比较操作肯定要比交换操作多,而复杂度的上限是O(n2)
魔法的可乐
·
2020-09-15 15:16
数据结构
排序算法
【小甲鱼】
数据结构笔记
3
算法效率的度量方法:(1)事后统计方法:通过设计好的测试程序和数据,利用计算机计时器,对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。(2)事前分析估算方法:在计算机程序编写前,依据统计方法对算法进行估算。判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(即最高项)的阶数。
冬辞
·
2020-09-14 23:27
数据结构笔记
数据结构
【班子库&
数据结构笔记
】平衡树入门之AVL树 NOI2004 郁闷的出纳员
题目链接平衡树是平衡的二叉搜索树,平衡树能够很好地解决暴力BST的一大缺点:某些子树肥大臃肿导致了查询速度的退化。其中旋转操作是灵魂,能够通过旋转操作做到平衡两个子树的结点数量。当一方比较肥大的时候就会进行zig左旋/zag右旋/zigzag双旋/zagzig双旋来平衡;同时添加size维护子树大小,还有插入的数字大小一样的时候,开一个cnt记录数量。Code:#include#include#i
DevourPower
·
2020-09-13 17:30
板子库
笔记
数据结构笔记
3
1.串str.h//str.h#ifndef_STR_H#define_STR_Htypedefstruct{char*ch;intlen;}STR;STR*NewStr(char*str);voidDestroyStr(STR*s);voidClearStr(STR*s);intStrCompare(STR*s,STR*t);intStrCancat(STR*s,STR*t);STR*SubSt
维唯为为
·
2020-09-13 15:58
数据结构
数据结构
null
tree
c
数据结构笔记
(七)——二项队列(binomial queue)(3)
左式堆将插入、合并和删除最小元的操作控制在O(logN),尽管时间已经够少了,但二项队列进一步降低了这个时间。二项队列(binomialtree)以最坏时间O(logN)支持以上操作,并且插入操作平均花费常数时间。二项队列不是一棵树,而是树的集合,称为森林,这里的树有特定的形式,同时也具有堆序性,叫做二项树(binomialtree)。如图为一个二项队列,有B0,B1,B2,B3,B4五棵二项树。
xisuesuexi
·
2020-09-12 01:16
数据结构
数据结构笔记
(六)——散列(Hash Table)之双散列和再散列(4)
虽然平方探测排除了一次聚集,但散列到同一位置的元素仍然会探测相同的备选位置,比如当冲突函数为i^2时,对于每个要插入的X,其向前探测地步长都是0,1,4,9,16,这样对于散列到同一位置的X,他们都会探测相同的备选位置,这是二次聚集。双散列对平方探测法里面的冲突函数做了进一步的改进,F(i)进一步的复杂化,引入了另外一个函数,这个函数对每个X都会计算出一个值,而不是和二次函数一样探测同样的位置。比
xisuesuexi
·
2020-09-12 01:45
数据结构
数据结构笔记
(六)——散列(Hash Table)之开放定址法(3)
前一篇讲了分离链接法,它的实现简单易懂,但是分离链接法需要指针,需要实现链表,给新单元分配地址也需要时间,因此速度有所下降。这一节的开放定址法不用链表来解决冲突,而是当遇到冲突时,尝试选择其他位置,直到找到一个空位置。,且F(0)=0.函数F为冲突解决方法。可以看到,数据将会被全部放入表中(不会有一个额外的链表用来存储数据),装填因子λ应该低一点(#defineMINSIZE5usingnames
xisuesuexi
·
2020-09-12 01:44
数据结构
数据结构笔记
(六)——散列(Hash Table)之分离链接法(2)
散列函数无法把所有的关键字散列到不同的位置,不可避免的会发生冲突,分离链接法是解决冲突的第一种方法。分离链接法的做法是将散列到同一个地址的关键字保留到一个表中,也就是每个位置分别对应了一个散列到该位置的表。定义装填因子λ为散列表中元素个数与散列表大小的比值。分离链接法一般会使得表的大小和元素差不多(λ=1),并且表的大小为素数。如果空间足够的话,我们会使用表头,否则去掉表头也可以。插入时新元素插入
xisuesuexi
·
2020-09-12 01:44
数据结构
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他