![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 93
摆烂牛杂
热爱人工智能,python,嵌入式,什么都想学一学,试一试
展开
-
数据结构与算法--交换排序与归并排序
介绍了直接插入排序、简单选择排序、快速排序、二路归并排序的思想和排序过程。展示了快速排序的一次划分过程。提供了前三种排序的算法实现。原创 2024-08-19 13:43:40 · 1010 阅读 · 0 评论 -
数据结构与算法--插入排序与选择排序
介绍了排序算法的概念、分类以及直接插入排序和简单选择排序的排序过程、实现和性能分析。原创 2024-08-18 22:29:23 · 1068 阅读 · 0 评论 -
数据结构与算法--二叉排序树
定义:二叉排序树是一棵具有特定顺序性质的二叉树。特性左子树上所有结点的关键字小于根结点的关键字。右子树上所有结点的关键字大于根结点的关键字。左、右子树本身也是二叉排序树。注意:没有相同关键字的结点。树表:以二叉树或树作为表的组织形式。树表是一类动态查找表,不仅适合于数据查找,也适合于表的插入和删除操作。常见的树表:二叉排序树平衡二叉树(AVL树)B树、B+树红黑树。原创 2024-08-17 11:25:45 · 479 阅读 · 0 评论 -
数据结构与算法--线性表查找
顺序表、有序表和索引表的查找方法。各种查找方法的优点、缺点和适用范围。原创 2024-08-16 18:28:41 · 949 阅读 · 0 评论 -
数据结构与算法--图的应用
普里姆 (Prim) 算法和克鲁斯卡尔 (Kruskal) 算法构造最小生成树的方法。狄杰斯特拉 (Dijkstra) 算法求解单源点最短路径。拓扑排序的应用。原创 2024-08-15 22:54:04 · 715 阅读 · 0 评论 -
数据结构与算法--图的存储与遍历
图G由顶点集合V和边集合E组成,记为G = (V, E)。V是顶点元素的有限集合,E是顶点间关系——边的有限集合。(边是顶点的无序对或有序对)无向图:边没有方向,由顶点的无序对组成。由没有方向的边构成的图。无向图中的边由顶点的无序对组成。(用圆括号表示)邻接点:无向图中,若存在一条边(Vi, Vj),则称Vi和Vj互为邻接点。右图中的边是无方向的,即 (V1, V2) 和 (V2, V1)表示同一条边。有向图:边有方向,由顶点的有序对组成,称为弧。由有方向的边构成的图。原创 2024-08-14 19:47:13 · 1105 阅读 · 0 评论 -
数据结构与算法--线索二叉树与哈夫曼树
/ 标记枚举类型,Link表示指向孩子,Thread表示线索char data;// 结点数据域// 左右标记域// 左右孩子或线索// 定义线索二叉树结点类型哈夫曼树(最优二叉树)是带权路径长度WPL最小的二叉树。结点的权:将树中结点赋予一个有某种意义的数值。原创 2024-08-12 10:46:30 · 662 阅读 · 0 评论 -
数据结构--双指针与LeetCodeHOT100
在编程和算法设计中,双指针技术是一种常用且强大的工具。它涉及使用两个指针在数据结构上进行操作,以解决特定的问题。双指针技术常见于数组、链表、字符串等数据结构的处理中,尤其在处理需要在数据集合中进行遍历、搜索和排序的场景时表现出色。双指针是一种算法策略,它使用两个游标(或索引)来遍历或操作数据结构中的元素。这两个指针可以以不同的速度移动,或者从不同的起点开始,以实现不同的算法目标。原创 2024-08-09 06:43:41 · 993 阅读 · 0 评论 -
数据结构与算法--二叉树的遍历及应用
二叉树的三种遍历算法。根据前序(后序)+ 中序遍历序列确定二叉树的形态。根据前序遍历序列(带空指针)创建二叉树的过程。结合二叉树的遍历,求解实际问题。原创 2024-08-09 06:42:28 · 1022 阅读 · 0 评论 -
数据结构与算法——树与二叉树
RABCDEFGnull元素集合 K = {k_i | 0 ≤ i ≤ n, n ≥ 0, k_i ∈ ElemType}n 为树中结点数,n=0 为空树,n>0 为非空树。对于一棵非空树,关系R满足下列条件:有且仅有一个结点没有前驱,称为根结点。原创 2024-08-08 10:07:02 · 1000 阅读 · 0 评论 -
数据结构与算法--递归
直接递归:函数直接调用自己间接递归:函数间接调用自己尾递归:求n!(n为正整数)的递归函数。函数fac(n) 直接调用fac(n-1)自身,是直接递归。递归调用是最后一条语句,又属于尾递归。( n!) 当 ( n > 1 )( 1!= 1 )( F(n) = F(n-1) + F(n-2) ) 当 ( n > 1 )return n;else对于递归数据结构,采用递归的方法编写算法既方便又有效。} else {递归的定义和模型递归的执行过程递归设计的一般方法。原创 2024-08-07 15:51:39 · 866 阅读 · 0 评论 -
数据结构与算法--队列
队列是一种受限的线性表,只能在一端插入,在另一端删除队尾(rear):允许插入的一端队头(front):允许删除的一端入队(enqueue):在队尾进行的插入操作出队(dequeue):在队头进行的删除操作队列特点:先进先出(FIFO)栈的应用非常广泛,在CPU内部就有提供栈这个机制。函数调用和返回,数字转字符,表达式求值,走迷宫等等。在CPU内部栈主要是用来进行子程序调用和返回,中断时数据保存和返回。在编程语言中:主要用来进行函数的调用和返回。在计算机中,可以说,原创 2024-08-03 22:31:27 · 909 阅读 · 0 评论 -
数据结构与算法--栈
栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。允许插入和删除运算的一端称为栈顶(top),不允许插入和删除的另一端称为栈底(bottom)。在栈顶进行的插入操作称为入栈或进栈(push),在栈顶进行的删除操作称为出栈或退栈(pop)特点:后进先出(LIFO, Last In First Out)。栈的后进先出特性。顺序栈和链栈的入栈、出栈操作。栈在中缀表达式转换为后缀表达式中的应用。原创 2024-08-02 16:20:32 · 1099 阅读 · 0 评论 -
数据结构与算法--线性表的链式存储
假定在链表中指定结点之前插入一个新结点,要完成这种插入必须首先找到所插位置的前一个结点,再进行插入。假设指针p指向待插位置的前驱结点,指针t指向新结点。单链表结点的插入是利用修改结点指针域的值,使其指向新的链接位置来完成插入操作,无需移动任何元素。结构:头指针,保存链表第一个结点的地址,尾结点指针域的值为空(NULL)。顺序存储结构优点:简单,可随机存取,存取速度快,每个结点只存储元素信息。:使用一组地址任意的存储单元,依存储线性表中的各数据元素。每个结点中既有指向后继的指针域,又有指向前驱的指针域。原创 2024-08-01 10:56:22 · 1058 阅读 · 0 评论 -
数据结构与算法--线性表的顺序存储
线性表由n个相同属性的数据元素组成,可以为空表或表示为 ( A = (a_1, a_2, …, a_i, …, a_n) )。线性表的逻辑特征包括:有且仅有一个表头元素 ( a_1 ),无前驱。有且仅有一个表尾元素 ( a_n ),无后继。表头元素和表尾元素之外的其他元素都有一个前驱和一个后继。线性表的长度为n,当n=0时,称为空表。一般形式:线性表数据结构定义n0}其中,关系的定义< ai , ai+1 >:ai , ai+1 必定相邻;原创 2024-07-31 10:30:34 · 661 阅读 · 0 评论 -
数据结构--哈希表
哈希函数的特点以及构造方法。冲突产生的原因以及处理冲突的方法。哈希查找的方法。练手题目1.已知哈希函数为H(k)=k%11,线性探测法解决冲突,根据哈希表的状态图,完成下面问题,并写出过程及结果。1)在上述哈希表的状态图中,空位置上标记空标志NULLFLAG,查找45;H(45)=45%11=1,地址被占用,线性探查下一地址;H1 =(H(45)+1)%11=2,占用;H2 =(H(45)+2)%11=3,查找成功。2)查找5,若5不存在,则将其插入;原创 2024-07-29 14:59:28 · 800 阅读 · 0 评论