数据结构
文章平均质量分 76
小炫y
你只管努力,其他交给天意
展开
-
数据结构与算法——数列排序【冒泡排序、选择排序】
一、冒泡排序“如果是大数往下沉的冒泡,就是从左开始;如果是小数往上浮的冒泡,就是从右开始”。从右往左: 最小值被移到了最左边。【冒泡法】的本意从左往右: 最大值被移到了最右边。此时其实应该叫 【沉石法】最坏空间复杂度: 总共 O(n),需要辅助空间 O(1)从左往右还是从右往左好像都差不多吧,这里是从小到大排序,从右往左,两两比较,右边小的则交换位置,将小的放左边,经过一轮就可以得出一个左边的最小值,在之后的排序中不再参与比较。原创 2023-02-07 17:00:33 · 1425 阅读 · 0 评论 -
python力扣刷题——翻转二叉树、对称二叉树(递归法、迭代法)
对于一棵对称二叉树的每一棵子树,以穿过根节点的直线为对称轴,左边子树的左节点=右边子树的右节点,左边子树的右节点=左边子树的左节点。每一棵大的二叉树都是由很多的子二叉树组成的。要求:从上到下打印二叉树,同层节点按照从左往右的顺序打印,即树的广度优先搜索(BFS)。运用队列结构的思想,将同一层的节点加到队列中,每次在结果集中追加同一层节点的val。左子树的左节点与右子树的右节点相等, 左子树的右节点与右子树的左节点相等。将左子树的左边和右子树的右边做为函数的输入,进行判断,不断递归。原创 2022-11-09 16:48:13 · 1410 阅读 · 0 评论 -
python数据结构——二叉树(一)遍历方法
对称序遍历得到“a - b x c / d + e”,基本上是相应数学表达式的中缀表示,只是缺少表示计算顺序的括号(未能表达正确的计算顺序)。若二叉树中最多只有最下面两层的节点的度数可以小于2,并且最下面一层的叶节点都依次排列在该层最左边的位置上,则这样的二叉树称为。后根序遍历得到的序列是“ a b - c d / e + x”,正是该表达式的后缀表示形式(即其波兰表示法的形式)。在一棵二叉树中,如果所有分支节点都有左孩子节点和右孩子节点,并且叶节点都集中在二叉树的最下一层,这样的二叉树称为。原创 2022-11-03 15:18:04 · 2659 阅读 · 0 评论 -
数据结构:串
原创 2022-10-22 16:53:01 · 180 阅读 · 0 评论 -
python数据结构——链表(单链表的插入排序法、双链表的操作)
顺序表和单链表的比较采用的是链式存储结构,使用一组地址任意的存储单元来存放数据元素。在单链表中,存储的每一条数据都是以节点来表示的,每个节点的构成为:元素(存储数据的存储单元) + 指针(存储下一个节点的地址值)。把需要添加进入单链表的数据封装成节点对象判断单链表是否为空表,也就是判断单链表中是否存在节点: a.如果单链表为空表,那么我们就将"添加节点"设置为单链表的首节点和尾节点 b.如果单链表不是空表,那么我们就将"添加节点"放到尾节点的后面,并设置"添加节点"为单链表的尾节 点。原创 2022-09-21 11:54:02 · 1996 阅读 · 0 评论 -
数据结构——第一章 算法
算法时间复杂度我们不关心编写程序所用的程序设计语言是什么,也不关心这些程序将跑在什么样的计算机中,我们只关心它所实现的算法。这样,不计那些循环索引的递增和循环终止条件、变量声明、打印结果等操作,最终,在分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或一系列步骤。——大话数据结构场景:金融港到关谷广场有很多条路。如果选择路程近的,那么可能会堵车耗时(时间复杂度的性能变差);如果选择耗时短的,那么可能会绕路(空间复杂度的性能变差)。到底选择走哪一条路,需要根据实际情况来综合考虑了。...原创 2022-08-18 17:55:21 · 1944 阅读 · 0 评论