【大总结1】数据结构与传统算法总结

由于时间和水平有限,肯定有错误或者写得不好的地方

欢迎在文章下评论指出。

 

涉及语言:

py3:注重算法本身的知识

c/c++:实现基础数据结构和算法

java:实现较复杂数据结构

 

 


一、概述


                         c语言知识体系

                        算法体系参考


                        课上笔记1(复习c、课程概述)

                        课上笔记2(基本概念、时空复杂度)

                        时空复杂度

                        浅析P/NP/NPC

                        引入:算法优化


提高篇

                        基础动态规划

                        摔手机:借一道水题打开思路


二、线性表

        笔记:

                        课上笔记3(线性表及顺序表示)

                        课上笔记5(链表概述)

                        课上笔记6(链表选讲、静态链表)

                        作业1讲解(最大子数组二维多维)

        基础代码实现:

                        顺序存储实现(静/动)

                        单链表不带头(标准实现)

                        单链表不带头(压缩代码)

                        双链表带头

        应用:

                        约瑟夫环(顺序、链式、数学)

                        线性表表示集合

                        线性表表示一元多项式

                        链表环相关问题

                        链表coding能力练习:归并排序

                        LRU介绍和实现


 提高篇

                      链表coding能力练习:相交问题


三、栈和队列

        笔记:

                        课上笔记7(栈、队列基础)

        基础代码实现:

                        数组实现栈

                        链表实现栈

                        数组实现队列(易懂实现循环)

                        链表实现队列

                        双栈

                        栈和队列的互相模拟

        应用:

                        栈排序

                        括号匹配

                        表达式求值

                        简单迷宫问题

                        借汉诺塔理解栈与递归

                        手动维护栈实现二叉树三种遍历

                         深搜、广搜与栈、队列

        相关算法:

                        单调栈

                        单调双端队列


提高篇

                        双端队列优化的背包问题


四、串

        笔记:

                        课上笔记8(串基础)

        基础代码实现:

                        串的定长表示

                        串的堆分配

                        为何py整数不会溢出

                        c语言文件操作

        相关算法:

                        一文读懂KMP

                        一文读懂Manacher

                        KMP题集1

                        KMP题集2

                        KMP+DP入门

                        字符串上的动态规划

                        前缀树

                        后缀树/后缀数组概述

                        AC自动机


五、数组和广义表

注:题目慢慢添加

        笔记:

                        课上笔记9(数组、广义表)

        部分题目实现:

                        二维数组基操四连

                        数组基本操作三连(1)

                        数组基本操作三连(2)

                        数组基本操作三连(3)

                        数组基本操作三连(4)

                        数组精选操作(5)

                        数组精选操作(6)

        应用:

                        2048小游戏实现

                        吃豆人

                        贪吃蛇


六、树

        笔记:

                        课上笔记10(树和二叉树概述)

                        二叉树概述

                        课上笔记11(满二叉树、完全二叉树)

                        课上笔记12(二叉树存储与遍历)

                        课上笔记13(树的存储)

        基础代码实现:

                        理解二叉树遍历

                        二叉树序列化/反序列化

                        先序中序后序两两结合重建二叉树

                        先序中序数组推后序数组

                        直观打印二叉树

                        根据数组建立平衡二叉搜索树

                        平衡二叉树的判断

                        完全二叉树的判断

                        搜索二叉树的判断

                        二叉树最长路径

                        时间低于O(N)求完全二叉树结点个数

        应用:

                        二叉搜索树

                        堆

                        堆应用例题三连

                        并查集

                        并查集入门题集

                        线段树

                        树状数组

        相关算法:

                        最大搜索子树

                        morris遍历 空间O(1)


七、图

        笔记:

                        课上笔记14(图基础)

                        课上笔记15(存储、遍历)

        基础:

                        最小生成树

                        拓扑排序

                        最短路

        相关算法:

                        迷宫

                        棋盘简单深搜广搜

                        皇后问题(位运算)

                        旅行商问题(认识状态压缩)


八、动态存储


九、查找

        基础代码实现:

                        二分及拓展

                        二叉搜索树实现

                        数组建立二叉搜索树

                        自平衡二叉搜索树

                        AVL Tree

        相关算法:

                        HashMap记录的动态规划

                        跳表介绍和实现


十、排序

        基础代码实现:

                        八种排序

        相关算法:

                        快排-荷兰国旗

                        快排-前m大元素

                        归并-求逆序数

                        桶思想-相邻数最大差值

                        堆

                        堆应用例题三连

                        BFPRT

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++基础学习(08)--(继承、重载、多态、虚函数)

文章目录目录1.继承2.重载3.多态 && 虚函数目录 1.继承 #include <iostream>using namespace std;// 基类 class Shape {public:void setWidth(int w){width w;}void setHeight(int h){height h;}protected:int width;int height; };// 派生类 class Rectang…

图的应用

1. 图的应用总览 在数据结构中图的应用很广泛&#xff0c;本文主要从以下四个方面介绍&#xff1a; ①最小生成树&#xff1a;给定一个无向网络&#xff0c;在该网的所有生成树中&#xff0c;使得各边权数之和最小的那棵生成树称为该网的最小生成树&#xff0c;也叫最小代价…

c++基础学习(09)--(数据抽象、数据封装、接口)

文章目录目录1.数据抽象2.数据封装3.抽象接口类目录 1.数据抽象 数据抽象&#xff1a;就是把它当做黑箱子使用&#xff0c;内部实现与外部接口分开 C类实现数据抽象&#xff0c;如sort()函数&#xff0c;ostream的cout对象 #include <iostream> using namespace std…

吃豆人游戏开发

这个文章怎么突然这么多人看啊。请大家多关注我其他文章啊 html&#xff1a; <html> <head> <meta charset"utf8"> <title>html5 pacman吃豆人游戏代码</title><style>body{background-color: #292929}*{padding:0;margin:0;}.w…

c++基础学习(10)--(文件、流、异常处理、动态内存、命名空间)

文章目录目录1.文件和流2.异常处理3.动态内存4.命名空间目录 1.文件和流 注意 文件打开方式中的in和out都是相对于内存&#xff08;计算机&#xff09;而言的&#xff0c;计算机读取文件&#xff0c;是将数据从磁盘中的文件读入到内存中&#xff0c;所以用的是in #include &…

数据结构和算法(02)---字符串(c++)

文章目录目录一.c风格的字符串与操作函数1.c风格字符串2.c风格字符串处理函数二.c中的字符串与操作函数1.c中的string类2.string类的基本操作3.string类的操作汇总目录 数据结构&#xff1a; 逻辑结构&#xff1a;数组&#xff0c;栈&#xff0c;队列&#xff0c;字符串&#x…

如何学习数据结构和算法——大佬文章汇总

第一篇 第二篇、 作者&#xff1a;左程云 我分别说一下国内和国外的行情。 国内的话&#xff0c;一般来讲&#xff0c;工资高的公司在面试时算法和数据结构题目的比重较大&#xff0c;工资一般的公司比重较小。当然同样公司的不同岗位&#xff0c;要求也会不同&#xff0c;…

c++基础学习(13)--(STL、标准库)

文章目录目录1. STL教程2.标准库3.有用的资源目录 1. STL教程 #include <iostream> #include <vector> using namespace std;int main() {// 创建一个向量存储 intvector<int> vec; int i;// 显示 vec 的原始大小cout << "vector size " &…

哈夫曼实现文件压缩解压缩(c语言)

写一个对文件进行压缩和解压缩的程序&#xff0c;功能如下&#xff1a; ① 可以对纯英文文档实现压缩和解压&#xff1b; ② 较好的界面程序运行的说明。 介绍哈夫曼&#xff1a; 效率最高的判别树即为哈夫曼树 在计算机数据处理中&#xff0c;霍夫曼编码使用变长编码表对源…

c++基础学习(11)--(模板、预处理器、信号处理)

文章目录目录1.模板2.预处理器3.信号处理目录 1.模板 模板是泛型编程的基础&#xff0c;泛型编程&#xff1a;以一种独立于任何特定类型的方式 #include <iostream> #include <string>using namespace std;template <typename T> inline T const& Max…

java 面向对象必懂概述

&#xff08;这是大体框架&#xff0c;以后部分知识细写&#xff09; 1 抽象过程 所有编程语言都提供抽象机制。可以认为&#xff0c;人们能解决的问题的复杂性直接取决于抽象的类型和质量。 类型&#xff1a;指的是所抽象的是什么。 汇编语言是对底层机器语言的轻微抽象…

c++基础学习(12)--(多线程、Web编程)

文章目录目录1.多线程2.web编程目录 1.多线程 #include <iostream> // 必须的头文件 #include <pthread.h>using namespace std;#define NUM_THREADS 5// 线程的运行函数 void* say_hello(void* args) {cout << "Hello Runoob&#xff01;" <&…

《Head First设计模式》第九章(1)迭代器模式

迭代器模式 因为这一章涉及到两个模式&#xff0c;内容有点多&#xff0c;还有一个组合模式留到下一篇写吧。 有许多种方法可以把对象堆起来成为一个集合&#xff08;collection&#xff09;。你可以把它们放进数组、堆栈、列表或者是散列表&#xff08;Hashtable&#xff09…

Java内存模型常见问题

1.什么是内存模型&#xff1f; 在多核系统中&#xff0c;处理器一般有一层或者多层的缓存&#xff0c;这些的缓存通过加速数据访问&#xff08;因为数据距离处理器更近&#xff09;和降低共享内存在总线上的通讯&#xff08;因为本地缓存能够满足许多内存操作&#xff09;来提高…

数据结构和算法(03)---栈和队列(c++)

文章目录目录一.栈1.栈的基本操作2.使用C模板类实现栈二.队列1.队列的基本操作2.循环队列**循环队列顺序存储****循环队列链式存储**3.双端队列目录 数据结构&#xff1a; 逻辑结构&#xff1a;数组&#xff0c;栈&#xff0c;队列&#xff0c;字符串&#xff0c;树&#xff0c…

索尼XB950N1 震撼人心的重低音

虽然题目是震撼人心的重低音&#xff0c;但是低音可以通过app调节&#xff0c;所以我们可以用这个耳机听各种类型的歌曲。 索尼XB950N1与XB950B1非常相似&#xff0c;但索尼XB950N1提供了主动降噪&#xff0c;续航稍长一些。从蓝牙3.0升级到了蓝牙4.1&#xff0c;改善了传输范…

数据结构和算法(04)---数组,动态内存,vector(c++)

文章目录目录数组1.数组的申明2.数组的初始化3.二维数组4.指向数组的指针5.传递数组给函数动态内存1.new &#xff0c;delete运算符2.数组的动态内存分配vector1.vector基本操作2.vector使用3.vector动态二维数组 初始化和赋值目录 数据结构&#xff1a; 逻辑结构&#xff1a;数…

数据结构和算法(05)---链表(c++)

文章目录目录链表的基本概念1.数组和链表链表的使用1.链表的简单使用2.链表的进阶使用3.链表的高阶使用4.链表的其他操作链表容器list1.list介绍2. list使用3. list与vector之间的区别4.list例子代码目录 数据结构&#xff1a; 逻辑结构&#xff1a;数组&#xff0c;栈&#xf…

论文阅读 状态压缩

状态压缩 Abstract 信息学发展势头迅猛&#xff0c;信息学奥赛的题目来源遍及各行各业&#xff0c;经常有一些在实际应用中很有价值的问题被引入信息学并得到有效解决。然而有一些问题却被认为很可能不存在有效的(多项式级的)算法&#xff0c;本文以对几个例题的剖析&#xf…

数据结构和算法(06)---二叉树(c++)

文章目录目录二叉树1.二叉树的基本概念2.二叉树的应用和时间复杂度3.二叉树的插入4.二叉树的查找5. 二叉树的遍历6.二叉树的删除二叉树的基本操作1.二叉树的基础操作2.代码实现创建二叉树和三种遍历二叉树的方法目录 数据结构&#xff1a; 逻辑结构&#xff1a;数组&#xff0c…