数据结构与算法
文章平均质量分 79
Stef若木
这个作者很懒,什么都没留下…
展开
-
C++实现二叉树相关问题(先序遍历,中序遍历,后序遍历,层序遍历,搜索二叉树、平衡二叉树、满二叉树、完全二叉树的判断,最低公共祖先,二叉树的序列化和反序列化)
题目一 二叉树递归和非递归递归序递归时,如果什么都不做,每个节点被访问的顺序。以上二叉树的递归序为:1, 2, 4, 4, 4, 2, 5, 5, 5, 2, 1, 3, 6, 6, 6, 3, 7, 7, 7, 3, 1基于递归序,对二叉树的遍历分为先序遍历,中序遍历和后续遍历。先序遍历:1, 2, 4, 5, 3, 6, 7(选取第一次出现的节点值,即第一次到达节点的时候打印,二、三次到达节点时什么也不做。)中序遍历:4, 2, 5, 1, 6, 3, 7(选取第二次出现..原创 2021-11-15 14:18:26 · 2034 阅读 · 0 评论 -
C++实现链表相关问题(反转单、双向链表,打印公共部分,判断回文结构,有没有环,链表相交)
0 概述链表分为单向链表和双向链表,在C++容器中为forward_list和list。在解决离链表的问题时,注意链表函数是否需要加返回值,如果链表的调整涉及到换表头的操作,返回值为node类型,不涉及的话,返回值可以为void。题目一:反转单向链表和双向链表。反转单向链表代码:...原创 2021-11-01 22:56:00 · 383 阅读 · 0 评论 -
C++实现十大排序算法(冒泡排序、选择排序、插入排序、希尔排序、归并排序、堆排序、快速排序、计数排序、桶排序和基数排序)
目录0 概述1 冒泡排序2 选择排序3 插入排序4 希尔排序5 归并排序6 堆排序7 快速排序8 计数排序9 桶排序10 基数排序本文为C++实现的十大排序算法及基于排序算法解决的一些常见问题,每一种算法均实际运行,确保正确无误。文中内容为自己的一些理解,如有错误,请大家指正。0 概述在十种排序算法中,前七种是比较类排序,后三种是非比较类排序,每种算法的最好、最坏、平均时间复杂度,空间复杂度以及稳定性如下表所示。稳定性是指排序前后相等的元素相对位置保.原创 2021-09-22 14:31:14 · 1793 阅读 · 4 评论 -
第六章 二叉树
目录6.1 二叉树的创建6.2 二叉树的遍历6.3 平衡二叉树6.4 二叉查找树6.5 平衡二叉查找树6.6 完全二叉树6.7 满二叉树6.1 二叉树的创建6.2 二叉树的遍历6.3 平衡二叉树6.4 二叉查找树6.5 平衡二叉查找树6.5.1 AVL树6.5.2 红黑树6.6 完全二叉树6.7 满二叉树...原创 2021-08-10 15:32:20 · 223 阅读 · 0 评论 -
数据结构与算法(极客时间-王争)03、04:复杂度分析(大O算法)
03丨上:如何分析统计算法的执行效率和资源消耗?概述数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。时间、空间复杂度分析是整个算法学习的精髓,必须掌握。为什么需要复杂度分析事后统计法:代码跑一遍通过统计、监控,就能得到算法执行的时间和占用的内存大小。缺点:(1)测试结果依赖环境 (2)...原创 2019-04-16 09:15:37 · 461 阅读 · 0 评论 -
数据结构与算法(极客时间-王争)06、07:链表
06丨链表(上):如何实现LRU缓存淘汰算法常用的缓存淘汰策略有三种:先进先出策略FIFO(First In, First Out)、最少使用策略(Least Frequently Used)、最近最少使用策略 LRU(Least Recently Used)。(清理书籍例子帮助记忆)链表及链表结构数组和链表的对比数组需要一组连续的内存空间来存储,链表不需要一块连续的内存空间,它通...原创 2019-04-16 09:16:12 · 799 阅读 · 0 评论 -
数据结构与算法(极客时间-王争)09丨队列
如何理解队列先进者先出,这就是典型的“队列”。支持的操作栈:入栈:push() 出栈:pop()队列: 入队:enqueue() 出队:dequeue()所以,队列跟栈一样,也是一种操作受限的线性表数据结构。作为一种基本的数据结构,队列应用非常广泛,特别是具有一些额外特性的队列,比如循环队列、阻塞队列、并发队列。它们在很多偏底层系统、框架、中间件的开发...原创 2019-04-26 14:11:18 · 861 阅读 · 0 评论 -
数据结构与算法思维导图
20 个最常用的、最基础数据结构与算法:10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10 个算法:贪心算法、分治算法、动态规划、回溯算法、递归、排序、搜索、二分查找、哈希算法、字符串匹配算法。推荐书籍:...转载 2019-04-11 16:27:52 · 1582 阅读 · 0 评论 -
数据结构与算法(极客时间-王争)05丨数组
关于数组:数组(array):是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。1、线性表顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。还有链表、栈和队列。与之对应的是非线性表,比如二叉树、堆、图等。数据之间不是简单的前后关系。2、连续的内存空间和相同的数据类型由于这两个特性,数组支持随机访问。但...原创 2019-04-16 09:15:54 · 1717 阅读 · 0 评论