- 文章目录 跳表跳表的搜索跳表的插入抛硬币 跳表的删除 跳表的代码实现跳表数据结构初始化跳表插入节点删除节点销毁跳表 为什么Redis要用跳表来实现有序集合? 跳表 让你现场手写一棵红黑树、AVL树、伸展树之类的,你行吗? 要不让我查资料,我估计只能扯皮。 跳表就不一样了,看懂它的原理很简单,根据它的原理直接手写也是可以实现的。 为什么? 跳表... 文章目录 跳表跳表的搜索跳表的插入抛硬币 跳表的删除 跳表的代码实现跳表数据结构初始化跳表插入节点删除节点销毁跳表 为什么Redis要用跳表来实现有序集合? 跳表 让你现场手写一棵红黑树、AVL树、伸展树之类的,你行吗? 要不让我查资料,我估计只能扯皮。 跳表就不一样了,看懂它的原理很简单,根据它的原理直接手写也是可以实现的。 为什么? 跳表...
- C++字符串数组定义在C++中不仅可以用string定义字符串变量,也可以用string定义字符串数组。string array[3]; 表示定义一个字符串数组,这个数组包含3个字符串元素。C++字符串数组初始化string array[3]={{"li"},{"zhang"},{"wang"}} 读者在使用字符串数组时应该注意以下几点:在一个字符串数组中包含若干个元素,每个元... C++字符串数组定义在C++中不仅可以用string定义字符串变量,也可以用string定义字符串数组。string array[3]; 表示定义一个字符串数组,这个数组包含3个字符串元素。C++字符串数组初始化string array[3]={{"li"},{"zhang"},{"wang"}} 读者在使用字符串数组时应该注意以下几点:在一个字符串数组中包含若干个元素,每个元...
- C++多维数组元素的地址在C++中,用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。 设有一个二维数组array,它有3行4列,如下:int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}; array是一个数组名,array数组包含3行,及3个元素:array[0],array[1],array[2],而每一个元素又... C++多维数组元素的地址在C++中,用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。 设有一个二维数组array,它有3行4列,如下:int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}; array是一个数组名,array数组包含3行,及3个元素:array[0],array[1],array[2],而每一个元素又...
- C++指向函数的指针作函数参数学到这里的读者应该知道在C语言中,函数指针变量常见的用途之一是作为函数的参数,将函数名传给其他函数的形参,这样可以在调用一个函数的过程中根据给定的不同实参调用不同的函数,在C++中同样如此。C++返回指针值的函数在C++中,一个函数可以带回一个整型值、字符值、实型值 等,也可以带回指针型的数据,即地址,带回的值的类型是指针类型,返回指针值的函数简称... C++指向函数的指针作函数参数学到这里的读者应该知道在C语言中,函数指针变量常见的用途之一是作为函数的参数,将函数名传给其他函数的形参,这样可以在调用一个函数的过程中根据给定的不同实参调用不同的函数,在C++中同样如此。C++返回指针值的函数在C++中,一个函数可以带回一个整型值、字符值、实型值 等,也可以带回指针型的数据,即地址,带回的值的类型是指针类型,返回指针值的函数简称...
- 01数组元素作函数实参1、数组元素可以用作函数实参,不能用作形参。2、在用数组元素作函数实参时,把实参的值传给形参,是“值传递”方式。3、数据传递的方向是从实参传到形参,单向传递。02数组名作函数参数1、除了可以用数组元素作为函数参数外,还可以用数组名作函数参数。2、用数组元素作实参时,向形参变量传递的是数组元素的值,而用数组名作函数实参时,向形参传递的是数组首元素的地址。3、... 01数组元素作函数实参1、数组元素可以用作函数实参,不能用作形参。2、在用数组元素作函数实参时,把实参的值传给形参,是“值传递”方式。3、数据传递的方向是从实参传到形参,单向传递。02数组名作函数参数1、除了可以用数组元素作为函数参数外,还可以用数组名作函数参数。2、用数组元素作实参时,向形参变量传递的是数组元素的值,而用数组名作函数实参时,向形参传递的是数组首元素的地址。3、...
- 文章目录 前言线索二叉树存储结构构建中序遍历建立线索二叉树 线索二叉树的用武之地 前言 早就想办了这个线索二叉树,但是一直又没什么动力。这次就办了吧、 线索二叉树 在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。 存储结构... 文章目录 前言线索二叉树存储结构构建中序遍历建立线索二叉树 线索二叉树的用武之地 前言 早就想办了这个线索二叉树,但是一直又没什么动力。这次就办了吧、 线索二叉树 在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。 存储结构...
- 01广义表的定义1、广义表是线性表的推广,也有人称其为列表(lists,用复数形式以示与统称的表list的区别)。广泛地用于人工智能等领域的表处理语言LISP语言,把广义表作为基本的数据结构。02广义表的存储结构1、由广义表(a1,a2,a3...an)中的数据元素可以具有不同的结构(或是原子,或是列表),因此难以用顺序存储结构表示,通常采用链式存储结构,每个数据元素可用一个结... 01广义表的定义1、广义表是线性表的推广,也有人称其为列表(lists,用复数形式以示与统称的表list的区别)。广泛地用于人工智能等领域的表处理语言LISP语言,把广义表作为基本的数据结构。02广义表的存储结构1、由广义表(a1,a2,a3...an)中的数据元素可以具有不同的结构(或是原子,或是列表),因此难以用顺序存储结构表示,通常采用链式存储结构,每个数据元素可用一个结...
- 01归并排序1、归并排序(Merging Sort)是又一类不同的排序方法。2、“归并”的含义是将两个或两个以上的有序表组成一个新的有序表。3、归并的实现无论是顺序存储结构还是链表存储结构,都可在O(m+n)的时间量级上实现。4、利用归并的思想容易实现排序。5、2-路归并排序中的核心操作是将一堆数组中前后相邻的两个有序序列归并为一个有序序列。6、实现归并排序需和待排记录等数量的... 01归并排序1、归并排序(Merging Sort)是又一类不同的排序方法。2、“归并”的含义是将两个或两个以上的有序表组成一个新的有序表。3、归并的实现无论是顺序存储结构还是链表存储结构,都可在O(m+n)的时间量级上实现。4、利用归并的思想容易实现排序。5、2-路归并排序中的核心操作是将一堆数组中前后相邻的两个有序序列归并为一个有序序列。6、实现归并排序需和待排记录等数量的...
- 文章目录 前言线索二叉树存储结构构建中序遍历建立线索二叉树 线索二叉树的用武之地 前言 早就想办了这个线索二叉树,但是一直又没什么动力。这次就办了吧、 线索二叉树 在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。 存储结构... 文章目录 前言线索二叉树存储结构构建中序遍历建立线索二叉树 线索二叉树的用武之地 前言 早就想办了这个线索二叉树,但是一直又没什么动力。这次就办了吧、 线索二叉树 在二叉树的结点上加上线索的二叉树称为线索二叉树,对二叉树以某种遍历方式(如先序、中序、后序或层次等)进行遍历,使其变为线索二叉树的过程称为对二叉树进行线索化。 存储结构...
- 01链表1、链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构,是根据需要开辟内存单元。2、链表有一个“头指针”变量,它存放一个地址,该地址指向一个元素。3、链表中每一个元素称为“结点”,每个结点都应包括两个部分(1)用户需要的实际数据。(2)下一个结点的地址。4、链表中各元素在内存中的地址可以是不连续的。5、要找某一元素,必须先找到上一个元素,根据它提供的下一元... 01链表1、链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构,是根据需要开辟内存单元。2、链表有一个“头指针”变量,它存放一个地址,该地址指向一个元素。3、链表中每一个元素称为“结点”,每个结点都应包括两个部分(1)用户需要的实际数据。(2)下一个结点的地址。4、链表中各元素在内存中的地址可以是不连续的。5、要找某一元素,必须先找到上一个元素,根据它提供的下一元...
- 例64:C语言实现找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。解析:读者看着道题的时候,首先要了解什么是鞍点,先找出一行中值最大的元素,然后检查它是否为该列中最小值,如果是,则是鞍点,输出该鞍点;如果不是,则再找下一行的最大数......如果每一行的最大数都不是鞍点,则此数组无鞍点。源代码演示:#include<stdio.h&g... 例64:C语言实现找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。解析:读者看着道题的时候,首先要了解什么是鞍点,先找出一行中值最大的元素,然后检查它是否为该列中最小值,如果是,则是鞍点,输出该鞍点;如果不是,则再找下一行的最大数......如果每一行的最大数都不是鞍点,则此数组无鞍点。源代码演示:#include<stdio.h&g...
- 例31:C语言用指针方法对10个整数按由大到小顺序排序。解题思路:在主函数中定义数组,用来存放10个整数,定义int *型指针变量p指向a[0],定义函数sort将数组中的元素按由大到小排序。排序函数:void sort(int x[],int n)//自定义排序函数 { int i,j,k,t;//定义整型变量 for(i=0;i<9;i++)//外层for循环 ... 例31:C语言用指针方法对10个整数按由大到小顺序排序。解题思路:在主函数中定义数组,用来存放10个整数,定义int *型指针变量p指向a[0],定义函数sort将数组中的元素按由大到小排序。排序函数:void sort(int x[],int n)//自定义排序函数 { int i,j,k,t;//定义整型变量 for(i=0;i<9;i++)//外层for循环 ...
- 目录 Numpy基础 介绍 代码操作 生成ndarray ndarray的数据类型 Numpy 数组计算 基础索引和切片 布尔索引 特殊索引 数组的转换和换轴 总结 每文一语 Numpy基础 介绍 目前它是Python数值计算中最为重要的基础包,将numpy的数组的对象作为数据交互的通用语,一般我们要充分理解好矩阵计算的原理,这需要你要有一些线... 目录 Numpy基础 介绍 代码操作 生成ndarray ndarray的数据类型 Numpy 数组计算 基础索引和切片 布尔索引 特殊索引 数组的转换和换轴 总结 每文一语 Numpy基础 介绍 目前它是Python数值计算中最为重要的基础包,将numpy的数组的对象作为数据交互的通用语,一般我们要充分理解好矩阵计算的原理,这需要你要有一些线...
- 文章目录 前言优胜树优胜树的重构优胜树代码实现 淘汰树难点突破淘汰树代码实现 前言 大部分人称呼它们为“胜者树”和“败者树”,也有人称呼它们为“优胜树”和“淘汰树”,我觉得还是优胜树和淘汰树比较好听点。 优胜树 优胜树是完全二义树,每个结点的取值足两个孩子的较小值。根据定义,根结点的取值是整个树的最小值。 这里给出了八路大军的前... 文章目录 前言优胜树优胜树的重构优胜树代码实现 淘汰树难点突破淘汰树代码实现 前言 大部分人称呼它们为“胜者树”和“败者树”,也有人称呼它们为“优胜树”和“淘汰树”,我觉得还是优胜树和淘汰树比较好听点。 优胜树 优胜树是完全二义树,每个结点的取值足两个孩子的较小值。根据定义,根结点的取值是整个树的最小值。 这里给出了八路大军的前...
- 01typedef1、简单地用一个新的类型名代替原有的类型名例子:typedef int Integer;//指定用Integer为类型名,作用与int相同。typedef float Real;//指定用Real为类型名,作用与float相同。2、命名一个简单的类型名代替复杂的类型表示方法C允许程序设计者用一个简单的名字代替复杂的类型形式(1)命名一个新的类型名代表结构体类型... 01typedef1、简单地用一个新的类型名代替原有的类型名例子:typedef int Integer;//指定用Integer为类型名,作用与int相同。typedef float Real;//指定用Real为类型名,作用与float相同。2、命名一个简单的类型名代替复杂的类型表示方法C允许程序设计者用一个简单的名字代替复杂的类型形式(1)命名一个新的类型名代表结构体类型...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
即将直播
热门标签