数据结构
文章平均质量分 93
风&57
这个作者很懒,什么都没留下…
展开
-
图(Graph)详解 - 数据结构
图及其最短路径算法详解原创 2022-12-21 12:05:07 · 5711 阅读 · 18 评论 -
并查集介绍
并查集介绍及其实现原创 2022-12-06 13:41:17 · 694 阅读 · 11 评论 -
二叉树相关OJ - C++
二叉树相关的oj题目,c++实现原创 2022-11-23 10:02:15 · 516 阅读 · 10 评论 -
哈希(Hash) - 开散列/闭散列
哈希的基本认识,哈希函数的设计,以及开散列和闭散列的实现原创 2022-11-15 12:33:15 · 1549 阅读 · 22 评论 -
用红黑树封装map和set
map 和 set 的模拟实现原创 2022-11-01 20:39:47 · 512 阅读 · 14 评论 -
红黑树 - c++
红黑树的理解以及插入实现原创 2022-10-24 14:05:44 · 1906 阅读 · 13 评论 -
图解 AVL 树 -【数据结构】
AVL树的介绍以及插入删除实现原创 2022-10-09 22:24:18 · 707 阅读 · 24 评论 -
二叉搜索树 -【数据结构】
二叉搜索树的介绍及其模拟实现原创 2022-10-04 23:10:24 · 1113 阅读 · 25 评论 -
stack 和 queue 使用及模拟实现
stack和queue的介绍及模拟实现,优先级队列和deque的讲解原创 2022-10-01 22:57:43 · 548 阅读 · 11 评论 -
list容器模拟实现【c++】
list模拟实现原创 2022-09-16 23:01:08 · 515 阅读 · 13 评论 -
二叉树基础OJ题目
文章目录:单值二叉树相同的树对称二叉树二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历另一棵树的子树单值二叉树题目链接:LeetCode965.单值二叉树题目:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。题目分析:这题我们用分治的思想来解决:分治思想即将一个大的问题无限划分为一个个小的子问题,在将子问题继续分解到不能分解为止。这个题目我们可以使用递归来判断根节点是不是和左子树所有的值相等,判断根节点是不是和原创 2022-05-18 22:33:08 · 402 阅读 · 16 评论 -
二叉树(初级)
文章目录1.树的概念及结构1.1数的概念1.2树的概念术语1.3树的表示1.4树在实际中的运用2.二叉树的概念及结构2.1二叉树的概念2.2特殊的二叉树2.3二叉树的性质2.4二叉树的存储结构3.二叉树的顺序结构及实现3.1二叉树的顺序结构3.2堆的概念及其结构3.3堆的实现堆存储结构体创建堆的初始化(创建)堆的摧毁1.树的概念及结构1.1数的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,叶朝原创 2022-04-24 19:37:53 · 1864 阅读 · 36 评论 -
栈和队列题目
栈和队列题目有效的括号(简单)用队列实现栈(简单)有效的括号(简单)题目链接: LeetCode20.有效的括号题目:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。解题思路:1.左括号,进栈。2.右括号,栈里面出一个与这个左括号进行匹配,匹配失败就false。题解:这一个题目用C语言实现的话,就必须自己写一个栈,然后去调用写的栈的函数接口,特原创 2022-04-05 13:07:14 · 1693 阅读 · 24 评论 -
栈和队列的实现
栈什么是栈?栈的结构图示二级目录三级目录什么是栈?栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守先进后出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。栈的结构图示二级目录三级目录...原创 2022-04-03 22:22:03 · 434 阅读 · 12 评论 -
带头双向循环链表(C语言实现)
文章目录创建链表存储结构创建结点链表的初始化双向链表的打印双向链表尾插双向链表尾删双向链表头插创建链表存储结构我们需要创建一个结构体来存储一个链表结点的相关信息。typedef int ListDataType;//将ListDataType先定义为int类型,根据需要可以改为不同的类型//创建一个链表的结构体typedef struct ListNode{ ListDataType data;//存储数据 struct ListNode* next;//存储下一个结点的地址的指针 s.原创 2022-03-31 15:41:27 · 1520 阅读 · 25 评论 -
链表OJ题目
文章目录移除链表元素反转链表移除链表元素题目链接:LeetCode203.移除链表元素题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。提示:列表中的节点数目在范围 [0, 104] 内1 <= Node.val <= 500 <= val <= 50题目分析:题解: 方法一struct ListNode* removeElements(struct List原创 2022-03-29 20:00:48 · 1514 阅读 · 26 评论 -
无头单向非循环链表(C语言实现)
文章目录:链表引入链表介绍三级目录链表引入问:上次我们看了顺序表,那么顺序表有些什么优缺点呢?优点:顺序表是连续的物理空间,方便下标的随机访问。缺点:1.增容需要申请新空间,拷贝数据,释放旧的空间。会有一定消耗。2.头部或者中间位置插入或者删除数据,需要挪动数据,效率较低。3.可能存在一定空间占用,浪费空间,不能按需申请和释放空间。为了解决上诉问题,我们引入了链表。首先我们先来看看单链表。链表介绍链表是一种物理存储结构上非连续、非顺序的存储结构、数据元素的逻辑顺序是通过链表中的指针链接原创 2022-03-20 22:31:22 · 2870 阅读 · 33 评论 -
数据结构顺序表(C语言实现)
文章目录:线性表顺序表顺序表接口实现1.顺序表初始化顺序表空间增容线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表有:顺序表、链表、栈、队列、字符串等。线性表在逻辑上是线性结构,也就是连续的一条直线。但在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式的形式存储。顺序表顺序表是用一段物理连续地址的存储单元依次存储数据元素的线性结构,一般情况采用数组存储。在数组上面完成数据的增删查改。一般情况下,原创 2022-03-17 16:11:41 · 1931 阅读 · 29 评论 -
算法的时间复杂度和空间复杂度
文章目录:1.算法效率算法的复杂度2.时间复杂度大O的渐进表示法常见的时间复杂度计算3.空间复杂度空间复杂度计算案例1.算法效率我们应该如何来衡量一个算法的好或者坏呢?是算法运行的时间越短或者是算法越简洁就越优吗?其实并不是。算法的复杂度算法在编写成可执行程序后,运行时需要消耗时间资源和空间资源。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要用来衡量一个算法运行的快慢,空间复杂度主要衡量一个算法运行时所需要的额外空间。在计算机发展的早期,计算机原创 2022-03-15 12:00:49 · 943 阅读 · 14 评论