数据结构
文章平均质量分 95
^jhao^
越努力,越幸运
展开
-
【数据结构】二叉搜索树剖析(附源码)
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作。原创 2022-02-13 19:03:42 · 1421 阅读 · 29 评论 -
【C++】list详解
list相较于vector来说会显得复杂,它的好处是在任意位置插入,删除都是一个O(1)的时间复杂度。接下来博主来大家实现实现这个list。原创 2021-11-20 13:03:54 · 15577 阅读 · 36 评论 -
【C++从0到1】C++入门(上篇)类入门篇
新手都能看懂的c++入门篇,讲述了命名空间,缺省函数,函数重载,extern “C”,引用,内联函数,nullptr,从零开始的c++解说,快跟随博主一同畅读!!原创 2021-09-28 10:22:25 · 3145 阅读 · 26 评论 -
[八大排序]0基础C语言实现八大排序,详解快排,归并,希尔
排序是啥?哪个排序最优?排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。本章介绍八大排序,快来看看有没有你会的吧!!!!原创 2021-09-25 15:02:45 · 1639 阅读 · 42 评论 -
【数据结构初阶】新学期带你领跑二叉树,二叉树的迭代遍历,递归遍历详解,建议收藏
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分 。原创 2021-09-09 17:41:50 · 1375 阅读 · 61 评论 -
【LeetCode热题】通过任意两种遍历序列构造二叉树【附代码,超详细,建议收藏】
根据前序和后序遍历构造二叉树,根据前序与中序遍历序列构造二叉树,根据中序与后序遍历序列构造二叉树。任意两种遍历序列构建一颗二叉树,这些题应该怎么去解决呢,现在,请跟着博主一同研究原创 2021-09-06 20:02:45 · 1687 阅读 · 34 评论 -
【数据结构入门】从零实现--堆的实现【建议收藏】
堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个结点的值总是不大于或不小于其父结点的值;堆总是一棵完全二叉树。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。原创 2021-09-04 13:48:45 · 2050 阅读 · 31 评论 -
【算法初阶】一篇学会回溯思想,解决N皇后问题!!
问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。如果经过±90度、±180度旋转,和对角线vector<string> letterCombinations(string digits) {分析:题目给出我们一个digits,就是要我们在digits对应的映射,例如digits为“2原创 2021-08-26 13:58:32 · 946 阅读 · 3 评论 -
【算法入门】数十道题总结的经验,看完本篇学会广度优先搜索BFS,超详细,建议收藏
BFS,即广度优先搜索。 BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。一般的实验里,其邻居节点尚未被检验过的节点会被放置在一个被称为 open 的容器中(例如队列或是链表),而被检验过的节点则被放置在被称为 closed 的容器中。原创 2021-08-23 14:14:55 · 1032 阅读 · 24 评论 -
【算法入门】最短时间学会DFS深度优先搜索
深度优先搜索前言 - -DFS经典放牌组合,同学们肯定或多或少的听到过别人提起过DFS,BFS,却一直都不太了解是什么,其实两个各为搜索算法,常见使用 深度优先搜索(DFS) 以及 广度优先搜索(BFS) ,今天我们就来讲讲什么是深度优先搜索,深度优先用粗俗的话说就是撞到了南墙才知道回头,才会往上一层返回。原创 2021-08-22 13:23:50 · 1416 阅读 · 22 评论 -
【数据结构入门】动图解顺序表,学会顺序表的增删查改,这一篇就够了
线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linearlist)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据元素的尾指针指向了首位结点)原创 2021-08-19 14:01:20 · 1797 阅读 · 10 评论 -
【数据结构】一篇文章了解并查集
并查集作为一种数据结构在处理需要将n个元素划分成不相交的集合,在逐步按照某一种规律将某些元素给合并,并在这个过程中要反复查询某一种元素归属于哪个集合的运算,称之为并查集原创 2021-08-16 19:07:35 · 795 阅读 · 6 评论 -
【算法】背包问题,编辑距离,不同的子序列详细求解
动规是常用的算法思想,通常暴力求解解决不了的问题中,有部分问题都是可以使用动规进行求解的,但动规的求解方法并不是那么容易想到的,博主总结了一些心得,快来看看吧原创 2021-08-15 17:14:46 · 499 阅读 · 2 评论 -
【算法】用习题教你如何使用动态规划,超详细,一看就会!!建议收藏!!
动态规划在各种比赛频繁出现,面试也经常问道,且大多数题目都不简单,今天就来带大家如何去思考动态规划求解问题原创 2021-08-13 12:53:24 · 1274 阅读 · 5 评论 -
【数据结构】栈和队列,看完这一篇就够了(万字配动图配习题)
注释:压栈/进栈/入栈:栈的插入操作,入数据在栈顶出栈: 站的删除操作,出数据也在栈顶来看看下面这个动图加深理解吧:代码展示栈的结构:常见接口:2.初始化栈3.压栈操作4.出栈操作栈是否为空5.获取栈顶元素6.获取栈中有效元素个数7.销毁栈二、队列1.队列的结构队列的结构会比栈的难懂一些,因为队列的属性就是先入先出,所以采用顺序表的话我们的头删就要去移动数据覆盖第一个位置,或者用一个指针记录头的位置,头删的时候用移动头节点来表示,但是这原创 2021-08-10 20:01:18 · 2101 阅读 · 18 评论 -
【C语言】可能是csdn最易懂的--函数栈帧(图解版)
理解函数栈帧能带我们更加深刻理解计算机,让我们在遇到问题知道其原理,对我们学习大大有好处,现在就跟着博主来学习函数栈帧吧原创 2021-08-08 21:05:53 · 1566 阅读 · 11 评论 -
【数据结构】链表,看这两篇就足够了(下集,动图版)
链表的概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。原创 2021-08-09 18:54:29 · 642 阅读 · 3 评论 -
【数据结构】链表,看这两篇就足够了(上集,动图版)
链表的概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。原创 2021-08-09 15:15:06 · 1298 阅读 · 16 评论