数据结构与算法
文章平均质量分 83
.
Super.Bear
https://github.com/Paraniod1
展开
-
图论之常用算法
介绍图论中常用的相关算法原创 2024-07-28 11:38:06 · 728 阅读 · 0 评论 -
图的存储(邻接矩阵,邻接表,十字链表)
文章目录前言一、邻接矩阵1.无向图的邻接矩阵2.有向图的邻接矩阵3.网图的邻接矩阵4.算法实现二、邻接表1.无向图的邻接表2.有向图的邻接表3.网图的邻接表4.算法实现三、十字链表1.有向图十字链表四、邻接多重链表总结前言提示:以下是本篇文章正文内容一、邻接矩阵图的特点: 顶点之间的关系是m:n,即任何两个顶点之间都可能存在关系(边),无法通过存储位置表示这种任意的逻辑关系,所以,图无法采用顺序存储结构邻接矩阵(数组表示法)基本思想:用一个一维数组存储图中的顶点的信息,用一个二维数..原创 2021-11-13 23:13:58 · 2914 阅读 · 0 评论 -
图的基本概念
文章目录前言一、图的定义二、图的基本术语1.无向图与有向图2.简单图3.邻接和依附4.无向完全图和有向完全图5.稀疏图与稠密图6.顶点的度7.权和网8.路径9.回路(环)10.子图11.连通图12.生成树和生成森林总结前言提示:以下是本篇文章正文内容一、图的定义图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为 G = (V, E),其中,G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合在线性表中,元素的个数可以为0,称为空表在树中,结点的个数可以为0,称为空..原创 2021-11-13 21:00:01 · 2399 阅读 · 1 评论 -
线索二叉树
文章目录前言一、线索链表二、线索二叉树1.建立线索链表2.中序线索二叉链表查找后继3.遍历中序线索链表总结前言一、线索链表保存二叉树的某种遍历序列:(1)如果二叉树不改变: 顺序存储(数组)(2)如果二叉树改变:链式存储(链表)存储遍历序列:假设二叉链表具有n个结点,则有n+1个空指针将二叉链表中的空指针域利用起来,指向其前驱结点和后继结点线索:将二叉链表中的空指针域指向其前驱结点和后继结点的指针被称为线索线索化:使二叉链表中结点的空链表域存放其前驱或后继信息的过程..原创 2021-11-09 21:22:03 · 772 阅读 · 0 评论 -
二叉树的创建与转换
文章目录前言一、二叉树的创建二、根据二叉树的遍历确定二叉树三、二叉树的转换1.树转换为二叉树2.森林转换为二叉树二叉树转换为树(森林)四、森林的遍历总结前言一、二叉树的创建遍历是二叉树各种操作的基础,可以在遍历的过程中进行各种操作,比如建立二叉树。为了建立一颗二叉树,将二叉树中每个结点的空指针引入一个虚结点,其值为一特定值如 " # ",以标识其为空,把这样处理后的二叉树称为原二叉树的扩展二叉树。扩展二叉树的前序遍历序列:A B # D # # C # #设二叉树中的结点均为..原创 2021-11-09 18:29:32 · 1441 阅读 · 0 评论 -
二叉树的遍历(递归算法与非递归算法)
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:以下是本篇文章正文内容一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarn..原创 2021-11-03 21:43:44 · 2332 阅读 · 0 评论 -
二叉树的性质
文章目录前言????二叉树的基本性质????性质一????性质二????性质三????完全二叉树的基本性质????性质四????性质五总结前言本文参考懒猫老师的数据结构课堂:数据结构提示:以下是本篇文章正文内容????二叉树的基本性质????性质一二叉树的第 i 层上最多有 2^(i-1) 个结点(i>=1)????性质二一颗深度为k的二叉树中,最多有(2^k) -1个结点,最少有k个结点注:深度为k且具有2^(k-1)个结点的二叉树一定是满二叉树,但是深度为k且具有k原创 2021-11-02 22:17:44 · 257 阅读 · 0 评论 -
二叉树的简介
文章目录前言????二叉树的定义????二叉树的类型????斜树????满二叉树????完全二叉树????二叉树的存储结构总结前言提示:以下是本篇文章正文内容????二叉树的定义二叉树是n(n>=0)个节点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两颗互不相交的,分别称为根节点的左子树和右子树的二叉树组成二叉树的特点:(1)每个节点最多有两颗子树(2)二叉树是有序的,其次序不能随意颠倒这两颗二叉树是不一样的二叉树的基本形态:包含五种注:二叉树和树原创 2021-11-02 12:13:59 · 607 阅读 · 0 评论 -
数据结构---树的简介
文章目录前言????基本概念????树的定义????基本术语????树的逻辑结构????前序遍历????后序遍历????层序遍历????树的存储结构????双亲表示法总结前言提示:以下是本篇文章正文内容????基本概念????树的定义树是n(n≥0)个结点的有限集合,n = 0时,称为空树,这是一种特殊情况在任意一棵非空树中应满足:①有且仅有一个特定的称为根的结点②当n > 1时,其余结点可分为m(m > 0)个互不相交的有限集合T1,T2,…,Tm,其中每个集合本身又原创 2021-11-01 17:34:28 · 187 阅读 · 0 评论 -
串---BF算法和KMP算法
文章目录前言一、串的定义二、串的存储1.顺序存储结构2.链式存储结构三、模式匹配1.BF(Brute Force)算法2.KMP算法3.next数组总结前言提示:以下是本篇文章正文内容一、串的定义串(string)是由零个或多个字符组成的有限序列子串:串中任意个连续的字符组成的子序列主串:包含子串的串空串:0个字符的串子串的位置:子串的第一个字符在主串中的序号S = "abcd123"T1 = "abcd"T2 = "abcd124"T1是S的子串,T2不是S的子串,T..原创 2021-10-23 23:01:21 · 1073 阅读 · 0 评论 -
队列的基本操作(C/C++)
文章目录前言一、队列定义二、顺序队列三、链式队列总结前言提示:以下是本篇文章正文内容一、队列定义队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表---->先进先出FIFO允许插入(也称入队,进队)的一端称为队尾允许删除(出队)的一端称为队头二、顺序队列顺序队列:利用数组实现队列的顺序存储为了避免当只有一个元素时,队头和队尾重合引起麻烦,使用两个指针front(指向队头元素),rear(指向队尾元素)三、链式队列总结提示:这里对文章进行总结:...原创 2021-10-18 17:51:39 · 19202 阅读 · 4 评论 -
栈的基本操作(C/C++)
文章目录前言一、栈的定义二、顺序栈三、两栈共享空间四、链栈总结前言提示:以下是本篇文章正文内容一、栈的定义栈(Stack)是受操作限制的线性表,插入和删除数据元素的操作只能在线性表的一段进行。栈一般有栈底和栈顶,stack是限定仅在表尾进行插入和删除操作的线性表,允许插入和删除的一端称为栈顶,另一端称为栈底栈又称为后进先出的线性表,简称LIFO结构栈的插入操作,为压栈、入栈;栈的删除操作,为出栈入栈(Push)数据元素进入栈内出栈(Pop)栈内元素从栈顶弹出二、顺序..原创 2021-10-16 21:42:35 · 8004 阅读 · 3 评论 -
链表的基本操作(C/C++)
文章目录前言一、单链表定义二、单链表的基本操作1.遍历操作2.链表长度3.链表查找4.链表插入5.头插入法(创建链表)6.尾插法(创建链表)7.删除结点8.链表释放三、循环链表四、双向链表总结前言提示:以下是本篇文章正文内容一、单链表定义当需要建立一个学生信息表,学生的人数无法确定而且人数经常变化,此时若用顺序表来实现将会很麻烦单链表:线性表的链接存储结构, 用一组任意(不联系, 零散分布) 的存储单元存放线性表的元素.存储特点:1.逻辑次序和物理次序不一定相同2.元素之..原创 2021-10-13 19:57:57 · 11728 阅读 · 0 评论 -
链表实现(C/C++/Pythom)
python源码# python 实现链表的基本操作# 结点对象class Node: def __init__(self, item): self.item = item # 该结点的值 self.next = None # 链接下一个结点# 链条对象class SinglyLinkedList(): ''''链表对象''' def __init__(self): self.__head = None de原创 2021-08-07 15:27:18 · 127 阅读 · 0 评论