数据结构与算法
文章平均质量分 92
许思王
嘿;-),这里是许思王吖,喜欢关注些热点话题,偶尔也更新些算法,喜欢关注一下哟(回关要私信哦)
展开
-
图的遍历——深度优先搜索(DFS)与广度优先搜索(BFS)(附带C语言源码)
在此之前我们学习过了图的一些基本概念,如同在二叉树中我们有前序遍历,中序遍历,后序遍历一般,在图中也有两种特殊的遍历方式——深度优先遍历与广度优先遍历。原创 2023-05-10 13:49:22 · 3154 阅读 · 24 评论 -
【数据结构与算法】图的概述(内含源码)
与线性表中的元素是“一对一”的关系和树中的元素是“一对多”的关系不同的是,数据结构中图的元素则是“多对多”的关系。图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的,今天就让我来带大家了解数据结构中图结构吧。在计算机科学中,一个图就是一些顶点的集合,这些顶点通过一系列边结对(连接)。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。顶点有时也称为节点或者交点,边有时也称为链接图有各种形状和大小。原创 2023-05-07 10:21:09 · 1710 阅读 · 43 评论 -
二叉树全分析(超详细总结建议收藏)
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分。二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。原创 2023-04-04 15:26:47 · 1429 阅读 · 31 评论 -
栈应用——逆波兰算法
在我们进行数字运算时我们会根据优先级自然的将结果算出来如同喝水一样,这是因为我们在学习算数开始就已经对这种运算方式习以为常了,但只能分辨出0和1的计算机又是如何进行运算的呢?🤔🤔🤔。原创 2023-03-21 17:52:08 · 1072 阅读 · 22 评论 -
队列的定义及基本操作实现(链式)
和栈相反,队列( queue)是一种先进先出( First In First Out, FIFO) 的线性表。它只允许在表的一端进行插人,而在另一端删除元素。这和日常生活中的排队是一致的, 最早进入队列的元素最早离开。在队列中,允许插入的一端称为队尾( rear),允许删除的一端则称为队 头( front)。假设队列为q=(a1,a2, .,an),那么,a就是队头元素, a,则是队尾元素。原创 2023-03-16 16:49:24 · 1380 阅读 · 40 评论 -
栈的定义及基本操作实现(顺序栈)
相信大家小时后一定玩过玩具枪吧,在我们装子弹时玩具枪的子弹只能从弹夹的一端进并且从同一端出来,这种特殊的结构在我们数据结构的世界称为——栈顺序栈是指利用顺序存储结构实现的栈,即利用一组 地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。通常习惯的做法是:以top= 0表示空栈,鉴于C语言中数组的下标约定从0开始,则当以C语言作描述语言时,如此设定会带来很大不便,因此另设指针base指示栈底元素在顺序栈中的位置。当top和base的值相等时,表示空栈。原创 2023-03-14 15:44:32 · 966 阅读 · 11 评论 -
汉诺塔?爬楼梯?斐波那契?知道递归就够了
我们在利用编程解决实际问题时总会遇到这样一种问题,即分解后的子问题与原问题类似,能用原来的方法解决问题,且最终的子问题是已知解或易于解,通常我们可以使用一种特殊的解决问题的方法原创 2023-03-10 20:28:04 · 635 阅读 · 2 评论 -
数据结构---学习前的必知知识
对字符、表格和图像等具有一定结构的数据进行处理。这些数据内容存在着某种联系,只有分清楚数据的内在联系,合理地组织数据,才能对它们进行有效的处理,设计出高效的算法。如何合理地组织数据、高效地处理数据,这就是我们学习“ 数据结构”主要的学习方向。原创 2023-03-08 17:15:31 · 703 阅读 · 2 评论 -
数据结构与算法---单向链表
单向链表的详细讲解(附完整版)原创 2023-03-01 19:03:05 · 1771 阅读 · 0 评论