首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏修也的进阶日记

    数据结构3道经典面试题带你玩转栈与队列

    QueueDestroy(&obj->q1); QueueDestroy(&obj->q2); free(obj); } 提交运行: 结语 希望通过上面的题目能使大家对栈和队列这两个经典的数据结构的理解以及运用能够更上一层楼

    30010编辑于 2024-04-01
  • 来自专栏对线JAVA面试

    面试系列-mysql数据结构

    的情况下,会导致树的⾼度变⾼,如果每个节点对应磁盘的⼀个块来存储⼀ 条数据,需io次数⼤幅增加,显然⽤此结构来存储数据是不可取的 B-树 可以看出使⽤B-树定位某个值还是很快的(10亿数据中3次 io操作+内存中⼆分法),但是也 是有缺点的:B-不利于范围查找,⽐如上图中我们需要查找[15,36]区间的数据,需要访 问7个磁盘块(1/2/7/3/8/4/9),io次数又上去了,范围查找也是我们经常 b-树对应k+1个⼦节点(多了⼀个指向⼦节点的指针) 2. b+树除叶⼦节点之外其他节点值存储关键字和指向⼦节点的指针,⽽b-树还存储了数 据,这样同样⼤⼩情况下,b+树可以存储更多的关键字 3.

    52810编辑于 2022-10-27
  • 来自专栏全栈程序员必看

    数据结构面试经典问题汇总及答案_数据结构基础面试

    数据结构面试经典问题汇总 参考资源 基础 深入 补充 参考资源 基础 数据结构常见面试题 深入 数据结构面试题(三) 数据结构面试必问 数据结构算法常见面试考题 补充 1.数组和链表的区别,请详细解释。 3.怎么理解哈希表,哈希表是什么 摘自百度:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构3)此时基准元素在其排好序后的正确位置 4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。 2)当n较大,内存空间允许,且要求稳定性:归并排序 3)当n较小,可采用直接插入或直接选择排序。 直接插入排序:当元素分布有序,直接插入排序将大大减少比较次数和移动记录的次数。 1) 线性探测法 2) 平方探测法 3) 伪随机序列法 4) 拉链法 11、KMP算法: 在一个字符串中查找是否包含目标的匹配字符串。其主要思想是每趟比较过程让子串先后滑动一个合适的位置。

    2.1K20编辑于 2022-11-04
  • 来自专栏分享学习

    数据结构与算法-面试

    简述数据结构栈 栈是一种线性表,其限制只能在表尾进行插入或删除操作。由于该特性又称为后进先出的线性表。 简述数据结构队列 队列是一种先进先出的线性表。 通过对这种数据结构进行每个元素的插入,插入值后,更新堆的过程中,把想等大小的值的相对位置上浮的过程中可能会改变,不稳定。 排序算法不稳定,时间复杂度 O(nlogn),空间复杂度 O(1)。 简述图 图是由顶点集合和顶点之间的边集合组成的一种数据结构,分为有向图和无向图。 说一下对于树的理解 数据结构树是一种由有限节点组成的层次关系的集合。

    91830编辑于 2022-02-28
  • 来自专栏传说之下的花儿的日常学习笔记

    Redis面试(二):数据结构

    数据结构2.1 Redis有哪些数据结构? Hyperloglog(基数统计):用来做基数统计算法的数据结构,如统计网站的UV。2.1.1 String(SDS)1. DECR key将 key 中储存的数字值减一EXISTS key判断指定 key 是否存在DEL key(通用)删除指定的 keyEXPIRE key seconds(通用)给指定 key 设置过期时间3. 消息队列:Redis List 数据结构可以用来做消息队列,只是功能过于简单且存在很多缺陷,不建议这样做。 ...将给定所有集合的差集存储在 destination 中SPOP key count随机移除并获取指定集合中一个或多个元素SRANDMEMBER key count随机获取指定集合中指定数量的元素3.

    50541编辑于 2023-09-21
  • 来自专栏气象杂货铺

    xarray | 数据结构(3)

    转换非维度坐标变量为数据变量: >> ds.reset_coords() <xarray.Dataset> Dimensions: (time: 3, x: 2, y: 2) Coordinates 坐标变量: >> ds['temperature'].reset_coords(drop=True) <xarray.DataArray 'temperature' (x: 2, y: 2, time: 3) 对象也有一些非常有用的方法,比如将其转换为 Dataset: >> ds.coords.to_dataset() <xarray.Dataset> Dimensions: (time: 3, variables: *empty* >> ds.coords.merge(alt.coords) <xarray.Dataset> Dimensions: (time: 3, 'V' - wn (spec) float64 0.1 0.2 0.7 0.9 有时也可以使用 sel 方法代替使用多索引层索引时 (见 Multi-level indexing [注3]

    2.2K21发布于 2020-04-21
  • 来自专栏E条咸鱼

    面试记录-3

    随便一提 面试的场景是越来越不一样了,第一次是正式在公司,第二次就是在边打游戏边面试,这次第三次面试就是下课走路上的面试,走路上的时候,学校还自带Bgm,中途还暂停了两次,说我要出示一下健康码哈哈哈,佛了 面试 自我介绍一下 哈哈哈不在这里介绍了 护网的时候是蓝方? (简历上写的) 是的 比赛的类型(或者说方式) CTF和AWD 58同城那个高危的爬虫,能不能说一下怎么绕(简历上 面试说了,这里不想说 能不能说一下,渗透测试的一个流程 我当时还以为,是只有限制一个站给我试

    51220发布于 2020-11-09
  • 来自专栏全栈程序员必看

    常用的算法和数据结构 面试_数据结构与算法面试题80道

    (1) 红黑树的了解(平衡树,二叉搜索树),使用场景 把数据结构上几种树集中的讨论一下: 1.AVLtree 定义:最先发明的自平衡二叉查找树。 缺点:Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大. 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。 并查集也是使用树形结构实现。不过,不是二叉树。每个元素对应一个节点,每个组对应一棵树。 例子:比如钱币分为1元3元4元,要拿6元钱,贪心的话,先拿4,再拿两个1,一共3张钱;实际最优却是两张3元就够了。 在所有具有性能优化的数据结构中,大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美。但是数据量大了,内存就不够了。

    1.1K20编辑于 2022-09-23
  • java数据结构面试

    以下数据结构属于非线性数据结构的是(C)A.队列 B.线性表 C.二 叉树 D .栈 32.树是结点的集合,它的根结点数目是(有且只有 1) 33.具有 3 个结点的二叉树有(5 种形态) 34. 3.所谓数据处理是指对数据集合中的各元素以各种方式进行运算, 包括插入、 删除、查找、更改等运算,也包括对数据元素进行分析。 4.数据结构是指相互有关联的 数据元素 的集合。 5.数据结构分为逻辑结构与存储结构,线性链表属于 存储结构 。 6.数据结构包括数据的 逻辑 结构和数据的存储结构。 7. 数据结构包括数据的逻辑结构、数据的 存储结构 以及对数据的操作运 算。 =p2); if(p1 == p2) return true; else return false; } 2,链表反转 单向链表的反转是一个经常被问到的一个面试题, 也是一个非常 基础的问题。 比如一个链表是这样的: 1->2->3->4->5 通过反转后成为 5->4->3->2->1。

    23510编辑于 2025-12-16
  • 来自专栏全栈程序员必看

    数据结构与算法(3

    算法笔记3 一、图 public class Graph { /** * 顶点的list集合 */ private ArrayList<String> vertexList 此时盘数大于1,将盘看做两个盘: //第一个盘为上面所有盘, 第二个盘为最下面的盘 /* 分为三步: 1.把上面所有盘从a->b 2.把最下面的盘从a->c 3. num-1,a,c,b); //2.把最下面的盘从a->c System.out.println("第"+num+"个盘从"+a+"->"+c); //3. class DynamicProgramming { public static void main(String[] args) { int []weight = {1,4,3}

    24720编辑于 2022-07-09
  • 来自专栏Python机器学习算法说书人

    数据结构3):栈(上)

    假设某个栈 S=(a[1], a[2], a[3], a[4], a[5]),如图所示,则 a[1] 为栈底元素,a[5] 为栈顶元素。 由于栈只能在栈顶进行插入和删除操作,进栈次序依次为 a[1],a[2],a[3],a[4],a[5],而出栈次序为 a[5],a[4],a[3],a[2],a[1]。 注意:我们每接触到一种新的数据结构类型,都应该分别从其逻辑结构、存储结构和对数据的运算三个方面着手,以加深对定义的理解。 栈的数学性质:n 个不同元素进栈,出栈元素不同排列的个数为 ? if self.top == -1: # 栈空 return True else: # 不空 return False (3

    59320发布于 2021-03-24
  • 来自专栏blog1

    数据结构3)单链表

    = NULL){ return ERROR; } LNode *s = p->next;//4 p->data = s->data;//p不能是最后一个结点//3变为 4 p->next = s->next;//3的后面是5 free(s);//删除原本的4 return OK; } 按位查找 int GetElem(LinkList L,int include <stdlib.h> #include "L.h" int main (){ LinkList L; int e; HeadInsert(L);//输入1,2,3 3 5 4 1 InsertPrior(L->next->next,6);//在第2位前面插入6 3 6 5 4 1 Deletespecial(L->next->next->next //删除第四个结点 InsertNext(L,9); Print(L); GetElem(L,2,&e); LocateElem(L,5); } 运行:初始插入1,2,3

    44820编辑于 2022-12-26
  • 来自专栏Python机器学习算法说书人

    数据结构3):栈(下)

    这一回,我们来看一下栈的 3 个常见应用:括号匹配、表达式求值外加递归。 ? ? 栈在括号匹配中的应用 ? 考虑下列括号序列: [ ( [ ] [ ] ) ] 1 2 3 4 5 6 7 8 分析如下: 计算机接收第 1 个括号“[”后,期待与之匹配的第 8 个括号出现。 获得了第 3 个括号“[”,此时第 2 个括号“(”暂时放在一边,而急迫与之匹配的第 4 个括号“]”出现。第三个括号的期待得到满足,消解之后,第 2 个括号的期待匹配又成为当前最紧迫的任务。 简单地说,若一个函数、过程或数据结构的定义中又应用了它自身,则这个函数、过程或数据结构称为是递归定义的,简称递归。

    82520发布于 2021-04-16
  • 来自专栏java学习java

    索引的数据结构3

    MySQL数据结构选择的合理性  全表遍历 这里都懒得说了。 Hash结构 上图中哈希函数h有可能将两个不同的关键字映射到相同的位置,这叫做 碰撞 ,在数据库中一般采用 链 接法 来解决。 3. 叶子节点包括 k-1 个关键字(叶子节点没有孩子),k 的取值范围为 [ceil(M/2), M]。 4. 上面那张图所表示的 B 树就是一棵 3 阶的 B 树。 我们可以看下磁盘块 2,里面的关键字为(8,12),它 有 3 个孩子 (3,5),(9,10) 和 (13,15),你能看到 (3,5) 小于 8,(9,10) 在 8 和 12 之间,而 (13,15 按照指针 P1 找到磁盘块 2,关键字为(8,12),因为 9 在 8 和 12 之间,所以我们得到指针 P2; 3.

    53230编辑于 2022-11-15
  • 来自专栏学习

    数据结构】链表专题3

    前言 本篇博客我们继续来讨论链表专题,今天的链表算法题是经典中的经典 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论区见 欢迎大家点赞收藏⭐文章 1.判断链表是否有环 一次走两步,slow一次走一步,假如没换那么fast或fast->next就会指向空,假如有环,那么fast先进环,slow后进环,若fast追上slow就证明了这个链表就带有环 代码如下 这道题曾经被一个面试官提出新的问题 N-2 N-4 N-4 …… …… 4 3 3.随机链表的复制 这道题链表每个节点里多了个指针指向随机节点,也有可能指向空,然后我们要深拷贝一份(深拷贝意思就是把指针指向对应的值对应关系也要在新拷贝的链表中实现),有人说我直接遍历然后拷贝不就行了 第三步尾插新链表,将拷贝在原链表的节点尾插新链表,并返回新链表的头结点 代码如下 这道题整体代码如下 相当于三个while嘛,一个while循环一步 结束语 链表有关算法题也就总结完了,从链表专题1到3都是特别经典的算法题

    21210编辑于 2024-09-25
  • 来自专栏Java,后端开发,网站开发,数据结构,算法分析.

    数据结构-3.链表

    前言 本篇博客给大家带来的是链表的知识点, 其中包括面试经常会提问的真题 ArrayList 和 LinkedList 的区别 . 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条, 如果分享不成功, 那我就会回你一下,那样你就分享成功啦. 现实中的结点一般都是从堆上申请出来的 3. 实际种更多的是作为其他数据结构的子结构, 如: 哈希桶, 图的邻接表等等. 另外这种结构在笔试 面试中出现很多. 2.无头双向链表: 在Java的集合框架库中LinkedList 底层实现 就是无头双向循环链表. 2.2链表的实现(无头单向非循环链表) 写到这里, 我想起上篇

    20610编辑于 2024-11-19
  • 来自专栏python3

    Python内置数据结构3

    In [34]: s Out[34]: {1, 2, 3} In [35]: s = set(range(5)) In [36]: s Out[36]: {0, 1, 2, 3, 4} 集合的操作 增加 In [37]: s Out[37]: {0, 1, 2, 3, 4} In [38]: s.add(9)  #增加单个元素 In [39]: s Out[39]: {0, 1, 2, 3 44]: {0, 1, 2, 3, 4, 9, 10, 11, 12, 13, 14} In [45]: s.remove(1) In [46]: s Out[46]: {0, 2, 3, 4, 9 In [58]: s2 = {2,3,4} In [59]: s1.intersection(s2) Out[59]: {2, 3} In [60]: s1 & s2 Out[60]: {2,  3} In [61]:  In [61]: s1.union(s2) Out[61]: {1, 2, 3, 4} In [62]: s1 | s2 Out[62]: {1, 2, 3, 4} In

    39540发布于 2020-01-03
  • 来自专栏全栈程序员必看

    数据结构面试常见问题总结怎么写_前端数据结构与算法面试

    数据结构面试常见问题总结 写在前面 本文记录了一些数据结构面试常见问题,本意用于考研复试,以下面试题为网上整理的问题以及自己加入的一些问题,答案仅供参考! ---- Q:数据结构三要素 A:逻辑结构、物理结构、数据运算 Q:数组与链表有什么区别? 便于在第一个元素节点之前进行插入和删除的操作 Q:栈和队列的区别 A:栈和队列都是操作受限的线性表 栈:只能在栈尾入栈、出栈,是先进后出 队列:队尾进,队首出,是先进先出 Q:度为 2 的树与二叉树有什么区别 A: 度为 2 的树至少有 3 ,接着再选取一个基准值来进行排序,以此类推,最后得到一个有序的数列 Q:关键路径和关键活动 A:关键路径是项目中时间最长的活动顺序,决定着可能的项目最短工期,可能有 1 条或多条 Q:关键路径是用什么数据结构实现的

    78220编辑于 2022-09-29
  • 来自专栏全栈程序员必看

    数据结构算法常见面试考题及答案_数据结构和算法面试

    (1) 红黑树的了解(平衡树,二叉搜索树),使用场景 把数据结构上几种树集中的讨论一下: 1.AVLtree 定义:最先发明的自平衡二叉查找树。 缺点:Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大. 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。 并查集也是使用树形结构实现。不过,不是二叉树。每个元素对应一个节点,每个组对应一棵树。 例子:比如钱币分为1元3元4元,要拿6元钱,贪心的话,先拿4,再拿两个1,一共3张钱;实际最优却是两张3元就够了。 在所有具有性能优化的数据结构中,大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美。但是数据量大了,内存就不够了。

    88830编辑于 2022-11-11
  • 来自专栏python3

    python学习3-内置数据结构3-by

    都不可变,python3默认使用utf8。

    31610发布于 2020-01-06
领券