天翼云数据结构知识文档专栏是天翼云为开发者提供的互联网技术内容平台。内容涵盖数据结构相关内容资讯。开发者在数据结构专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
树转换为二叉树 森林转换为二叉树 树的遍历 树的遍历有两种方式:先序遍历和后序遍历。
二叉树的主要遍历方式有先序遍历、中序遍历、后序遍历和层次遍历。
线性表 [a1, a2, a3, ..., an] 中的元素递增有序且按顺序存储于计算机内。要求设计一个算法,完成用最少时间在表中查找数值为 x的元素,若找到,则将其与后继元素位置相交换,若找不到,则将其插入表中并使表中元素仍递增有序。
它的基本思路是:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k比较,若当前扫描的关键字与k相等,则查找成功,若扫描结束,仍未发现关键字等于k的记录,则查找失败。
给定整型数组B[0 , ... , M][0 , ... , N]。已知B中数据在每一维方向上都按从小到大的次序排列,且整型变量k在B中存在。设计一个程序段,找出一对满足B[i][j]=k的i和j值,找到后输出i和j的值,要求比较次数不超过M+N。
假设二叉树采用二叉链表存储结构存储,编写一个程序,输出先序遍历序列中第k个结点的值,假设k不大于总的结点树(结点data域类型为char类型)。
用单链表保存 m 个整数,节点的结构为 [data][next],且 |data|<=n(n 为正整数)。现要求设计一个时间复杂度尽可能高效的算法,对于链表中 data 的绝对值相等的节点,仅保留第一次出现的节点而删除其余绝对值相等的节点。
将一个带头结点的单链表 A 分解为带头结点的单链表 A 和 B,使得 A 表中含有原表中序号为奇数的元素,而 B 表中含有原表中序号为偶数的元素,且保持其相对顺序不变。
有时候我们需要寻找单链表的第 k 个节点,当然这个 k 在 [1, n] 范围内,可以采用计数的方式
给定一个带头结点的单链表,设 head 为头指针,节点结构为 (data, next),data 为整型元素,next 为指针,试写出算法:按递增次序输出单链表中各节点的数据元素,并释放节点所占的存储空间。要求:不允许使用数组作为辅助空间。
做甜点需要购买配料,目前共有n种基料和m种配料可供选购。 制作甜点需要遵循以下几条规则: 必须选择1种基料;可以添加0种、1种或多种配料,每种类型的配料最多添加2份, 给定长度为n的数组base, base[i]表示第i种基料的价格,给定长度为m的数组topping, topping[j]表示第j种配料的价格,给定一个正数target,表示你做的甜点最终的价格要尽量接近这个数值。
开散列又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,即 key 映射的下标位置,具有相同地址的关键码 (哈希冲突) 归于同一子集合,每一个子集合称为一个桶 (哈希桶),各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中;也就是说,当发生哈希冲突时,把 key 作为一个节点直接链接到下标位置的哈希桶中。
在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合, 然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类问题的抽象数据类型称为 并查集(union-find set)。
红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是 红色(Red) 或 黑色(Black)。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。
二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。
一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
【数据结构】二叉树的实现&&OJ练习
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。
LRU是Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法。
2023-05-15 10:00:33
2023-03-21 10:32:27
2023-03-22 09:34:26
2023-02-24 09:05:57
2023-05-23 09:26:42
2023-06-07 07:30:58