数据结构与算法
文章平均质量分 74
浅酌深思
漫漫取经路,求各路大佬指导
展开
-
【数据结构】树与树的算法
树与树的算法树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:1.每个节点有零个或多个子节点;2.没有父节点的节点称为根节点;3.每一个非根节点有且只有一个父节点;4.除了根节点外,每个子节点可以分为多个不相交的子树;树的术语节点的度:一个节点含有的子树的原创 2021-08-11 18:33:46 · 383 阅读 · 0 评论 -
【数据结构】希尔/归并排序
归并排序—实践中常用https://blog.csdn.net/jianyuerensheng/article/details/51262984排序原理:**思想:**先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。3、工作原理:(1)申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列(2)设定两个指针,最原创 2021-08-06 19:30:41 · 115 阅读 · 0 评论 -
【数据结构】堆栈/队列/排序算法
线性表用来干什么?(顺序表和链表)线性存储数据栈概念:用线性表实现- 后进先出-LIFO-Last In First Out堆栈(也叫栈):容器,可存入数据元素,进行访问、删除单端操作:只允许在容器一端(栈顶端-TOP)进行加入(push)输出(pop)数据没有位置概念,任何时候均可访问默认访问顺序:后进先出-LIFO*栈的实现:(可以用顺序表/链表来写一个栈)实现的操作:–要点列表元组就是采用顺序表技术,所以无需再重写 顺序表类,直接利用列表来进行辅助存储即可—只需要满足先进先出的栈的原创 2021-08-05 16:33:05 · 372 阅读 · 0 评论 -
【数据结构】双向链表
https://blog.csdn.net/m0_52762927/article/details/119378239双向链表每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。双向和单向 的对比:单向链表:只有一个指向下一个节点的指针。优点:单向链表增加删除节点简单。遍历时候不会死循环;缺点:只能从头到尾遍历。只能找到后继,无法找到前驱,也就是只能前进。适用于节点的增加删除。双向链表:有两个指针,一个指向前原创 2021-08-04 17:42:35 · 115 阅读 · 0 评论 -
【数据结构】单向循环链表
单向循环链表(首尾相连)单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。ps:关于类加上object----object类似于一个基础类,协商相当于自定义的类继承了object的功能,在python3里即使不写,也默认加载obiect。链表里:a=b表示将a指向b代码实现与详解(注释内)class Node(object): """节点""" def __init__(self, item): self.ite原创 2021-08-04 15:50:02 · 130 阅读 · 0 评论 -
【py数据结构与算法】基础概念
数据结构与算法1.好的算法可节省运算时间1. 2.算法效率衡量** 1.2.1时间复杂度**算法完成工作最少需要多少基本操作,即最优时间复杂度(理想上限,实际意义不大)算法完成工作最多需要多少基本操作,即最坏时间复杂度****(基础下限,可以评估算法的基础操作–主要关注这一项)**算法完成工作平均需要多少基本操作,即平均时间复杂度**(对算法的全面评价)1.2.2大O记法*–实际意义有限其实类似于函数求了边界,看函数是否有上限,在n无穷大处单侧收敛原理:“大O记法”:对于单调的整数函数f,原创 2021-08-01 23:56:06 · 388 阅读 · 1 评论