2 李歘歘

尚未进行身份认证

我要认证

微信公众号关注「李歘歘」,一起学习,共同进步。

等级
TA的排名 5k+

在大学期间必须学好的几门课​

对于一个学生来说,学习必然是放在第一位的,在大学期间,你必须要熟练掌握几门最重要的课程,以免让自己错过一个又一个的机会,很多的读者也曾和我一样认为大学的某一些课程是没有必要的,觉得以后不会用到,学不学无所谓,但现在即将毕业的我,回想大学生活,发现学校所开设的每一门课都很有必要,比如高数、线代、概率论等数学知识;大物、电路、等硬件和理论相关的知识,在网上很多的文章中都有提到过他们的重要性,大多数的计...

2020-04-23 21:39:25

稀疏矩阵

#include<cstdio>#include<cstring>#define ElemType int #define Status int //稀疏矩阵的三元组顺序表存储表示 #define MAXSIZE 12500 //非零元的最大个数#define MAXRC 100 //非零元的最大个数typedef struct{ ...

2020-03-17 22:44:14

数组的顺序表示和实现

线性表的顺序表示和实现可以适当的先了解一下stdarg头文件写的三个宏:va_start、va_arg、va_end。#include<cstdio>#include<cstdlib> #include<cstdarg> //标准头文件,提供三个宏(va_start、va_arg和va_end) //用于存取变长参数表#define E...

2020-03-07 18:24:33

数据结构(严蔚敏C语言版)代码实现持续更新中

文章汇总:线性表:线性表的顺序表示和实现线性表的链式表示和实现静态链表的表示和实现栈:顺序栈——栈的顺序表示和实现链栈——栈的链式表示和实现队列:链队列——队列的链式表示和实现顺序队列——队列的顺序表示和实现(书上没有,自己总结的,书中用顺序队列用来实现循环队列,读者可忽略,感兴趣的可以看一下,帮我纠正)循环队列——队列的顺序表示和实现...

2020-02-28 20:05:26

循环队列——队列的顺序表示和实现

循环队列不能通过队头队尾指针相等判别队列空间是“空”还是“满”。可有两种处理方法:其一是另设一个标志位以区别队列是“空”还是“满”;其二是少用一个元素空间,约定以“队列头指针在队列尾指针的下一位置(指环状的下一位置)上”作为队列呈“满”状态的标志。从上述分析可见,在C语言中不能用动态分配的一维数组来实现循环队列。如果用户的应用程序中设有循环队列,则必须为它设定一个最大队列长度(用顺序);若用户...

2020-02-28 17:51:49

顺序队列——队列的顺序表示和实现

队列的顺序表表示:#include<cstdio>#include<cstdlib> #define QElemType int #define Status int #define QUEUE_INIT_SIZE 100 //初始空间分配量#define QUEUEINCREMENT 10 //存储空间分配增量 using namespace std...

2020-02-27 22:26:27

链队列——队列的链式表示和实现

队列的链式表示:#include<cstdio>#include<cstdlib> #define QElemType int #define Status int using namespace std;//链队的结构 (数据域和指针域)typedef struct QNode{ QElemType data; //数据域 struct QN...

2020-02-27 16:33:43

链栈——栈的链式表示和实现

用链表示的栈的基本操作:#include<cstdio>#include<cstdlib> #define MAXSIZE 1000 //链表的最大长度 #define SElemType int #define Status int //栈的结构typedef struct LStack{ SElemType data; //数据域 struct ...

2020-02-26 23:20:53

顺序栈——栈的顺序表示和实现

栈的基本操作代码:#include<cstdio>#include<cstdlib> #define SElemType int #define Status int #define STACK_INIT_SIZE 100 //初始空间分配量#define STACKINCREMENT 10 //存储空间分配增量 using namespace std...

2020-02-26 20:58:25

静态链表的表示和实现

硬核:静态链表的基本操作,底层实现#include<cstdio>#include<cstdlib> #define MAXSIZE 1000 //链表的最大长度 #define ElemType int #define Status int using namespace std;//静态链表的结构(数据域、游标) typedef struct ...

2020-02-25 23:01:29

线性表的链式表示和实现

硬核:线性表中的链表表就是在内存中用一组地址不连续的存储单元依次存储线性表的数据元素下面是常用的方法:#include<cstdio>#include<cstdlib> #define ElemType int #define Status int using namespace std;//链表的结构 (数据域和指针域)typedef stru...

2020-02-24 16:40:35

线性表的顺序表示和实现

硬核:线性表中的顺序表就是在内存中用一组地址连续的存储单元依次存储线性表的数据元素,就是常用的数组。

2020-02-23 14:47:51

拓扑排序

如果一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个有向图为有向无环图(Directed Acyclic Graph,DAG)。拓扑排序是将有向无环图G的所有顶点排成一个线性序列,使得对图G中的任意两个顶点u、v,如果存在边u->v,那么在序列中uー定在v前面。这个序列又被称为拓扑序列。具体做法可以抽象为:①定义一个队列Q,并把所有入度为0的结点加入队列。②取队首...

2020-02-20 12:09:09

kruskal算法

kruskal算法(读者可以将其读作“克鲁斯卡尔算法”)同样是解决最小生成树问题的一个算法。和prim算法不同,kruskal算法采用了边贪心的策略,其思想极其简洁,理解难度比prim算法要低很多。kruskal算法的基本思想为:在初始状态时隐去图中的所有边,这样图中每个顶点都自成一个连通块。之后执行下面的步骤:①对所有边按边权从小到大进行排序。②按边权从小到大测试所有边,如果当前...

2020-02-18 12:09:07

最小生成树——prim算法

最小生成树(Minimum Spanning Tree,MST)是在一个给定的无向图G(V,E)中求一棵树T,使得这棵树拥有图G中的所有顶点,且所有边都是来自图G中的边,并且满足整棵树的边权之和最小。下图给出了一个图G及其最小生成树T,其中较粗的线即为最小生成树的边。可以看到,边AB、BC、BD包含了图G的所有顶点,且由它们生成的树的边权之和为6,是所有生成树中权值最小的。最小生成树有3...

2020-02-15 10:59:53

Floyd算法

最短路径是图论中一个很经典的问题:给定图G(V,E),求一条从起点到终点的路径,使得这条路径上经过的所有边的边权之和最小。对任意给出的图G(V,E)和起点S、终点T,如何求从S到T的最短路径。解决最短路径问题的常用算法有Dijkstra算法、Bellman-Ford算法、SPEA算法和Floyd算法。Floyd算法(读者可以将其读作“弗洛伊德算法”)用来解决全源最短路问题,即对给定的...

2020-02-14 15:54:17

Bellman--Ford算法和SPFA算法

最短路径是图论中一个很经典的问题:给定图G(V,E),求一条从起点到终点的路径,使得这条路径上经过的所有边的边权之和最小。对任意给出的图G(V,E)和起点S、终点T,如何求从S到T的最短路径。解决最短路径问题的常用算法有Dijkstra算法、Bellman-Ford算法、SPEA算法和Floyd算法。Dijkstra算法可以很好地解决无负权图的最短路径问题,但如果出现了负权边,Dijk...

2020-02-14 13:32:21

Dijkstra算法

最短路径是图论中一个很经典的问题:给定图G(V,E),求一条从起点到终点的路径,使得这条路径上经过的所有边的边权之和最小。对任意给出的图G(V,E)和起点S、终点T,如何求从S到T的最短路径。解决最短路径问题的常用算法有Dijkstra算法、Bellman-Ford算法、SPEA算法和Floyd算法。1.Dijkstra算法Dijkstra算法(读者可以将其读作“迪杰斯特拉算法”...

2020-02-13 16:14:18

这些经典排序,你必须掌握!

排序,算法最基础的体现之一。程序员必备的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序等。排序的本质在于交换,各类排序算法的不同也仅局限于交换的方式和次数,所以,理解排序,要先理解交换。1.冒泡排序思想:类似于水中的气泡上浮的过程,较小的气泡先冒起,较大的气泡后冒起。依次比较相邻的两个数,将比较大的数字放在右边。原理:每次通过交换的方式把当前剩余元素的最大值移动到一端,...

2020-02-13 11:05:41

图的遍历

图的遍历是指对图的所有顶点按一定顺序进行访问,遍历方法一般有两种:深度优先搜索(DFS)和广度优先搜索(BFS)。关于DFS和BFS以及在树中的应用请参考从树的遍历看DFS和BFS深度优先搜索(DFS)广度优先搜索(BFS)下面把它们应用于图的遍历中。1.深度优先搜索(DFS)深度优先搜索以“深度”作为第一关键词,每次都是沿着路径到不能在前进时才退回到最近的岔道口。...

2020-02-11 16:09:27

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。