自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 (C/C++)-图的深度优先遍历(DFS)和广度优先遍历(BFS)

(C/C++)-图的深度优先遍历(DFS)和广度优先遍历(BFS)1、图的深度优先遍历(DFS)图的深度优先遍历与树的先序遍历类似,即尽可能深的遍历图这里采取邻接矩阵存储图,存储的图如下:ps: 这个图沿用我的上一篇文章(最小生成树和单源最短路径),有兴趣的伙伴可以看看----点击传送门基本思想:先访问图的某一顶点v,然后由顶点v出发,访问与顶点v邻接并且未被访问的任一顶点w1;在由w1出发,访问与顶点w1邻接并且未被访问的任一顶点w2;重复上述过程,直到所有顶点被访问;具体实现:

2021-01-06 22:29:01 2447 1

原创 (C/C++)-最小生成树算法(Prim&Kruskal)和单源最短路径算法(Dijkstra)

(C/C++)-最小生成树算法(Prim&Kruskal)和单源最短路径算法(Dijkstra)1、什么是最小生成树对于一个带权连通无向图G=(V,E),图G的不同的生成树,其所对应的生成树的权值可能不同。设R是G所有生成树的集合,T是R中权值最小的那棵生成树,则称T为G的最小生成树最小生成树的性质最小生成树可能不唯一,但其对应的边的权值之和总是唯一的,且是最小的;最小生成树的边数为顶点数-1; 2、Prim算法的实现(选点)图G=(V,E),其中V为所有结点的集合,E为图G的边

2020-12-12 16:21:07 2248 1

原创 C语言-哈夫曼树与哈夫曼编码的实现

C语言-赫夫曼树与赫夫曼编码的实现

2020-11-08 00:47:33 7838 2

原创 递归与分治策略算法之循环赛日程表

递归与分治策略算法之循环赛日程表1、先简单的来介绍一下分治策略的思想分治策略的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,分解出来的子问题与原问题相同,并且相互独立。通过递归去解决子问题,然后将子问题的解合并得到原问题的解。2、循环赛日程表问题的介绍...

2020-09-11 16:21:36 3367 1

原创 递归与分治策略算法之棋盘覆盖问题

递归与分治策略算法之棋盘覆盖问题1、先简单的来介绍一下分治策略的思想分治策略的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,分解出来的子问题与原问题相同,并且相互独立。通过递归去解决子问题,然后将子问题的解合并得到原问题的解。2、棋盘覆盖问题的介绍    在一个2k2^k2k*2k2^k2k方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格,称该棋盘为特殊棋盘。    现在要让这个大的特殊棋

2020-09-09 11:12:33 2115

原创 C语言数据结构之栈在表达式值的应用

C语言数据结构之栈在表达式中的应用tips:前些天学习了数据结构,今天来总结一下数据结构知识栈的应用。一、前缀表达式,中缀表达式,后缀表达式的介绍前缀表达式(波兰表达式):运算符在两个操作数之前的表达式;中缀表达式:运算符在两个操作数中间的表达式;后缀表达式(逆波兰表达式):运算符在两个操作数之后的表达式;可以了解到表达式的区别在于运算符的位置不同。从这里可以看出,中缀表达式就是我们正常书写的表达式。下面来看一个例子,加深一下对这三种表达式的理解与转换过程。中缀表达式后缀表达

2020-09-06 18:55:52 1858 3

原创 C语言数据结构之内部排序及其时间复杂度

C语言数据结构之内部排序及其时间复杂度tips:前些天学习了查找的方法,今天来总结一下九大内部排序。先总览一下九大内部排序: 内部排序 插入排序 直接插入排序 折半插入排序 希尔排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 归并排序 基数排序 下面来逐个看看内部排序的过程1、直接插入排序直接插入排序是在有序序列中插入元素,使其仍然有序。思路:

2020-08-30 01:51:04 847

原创 C语言数据结构之查找(顺序查找,折半查找)

C语言数据结构之查找(顺序查找,折半查找)tips:前些天已经学习了树和图的相关知识,今天来总结下两种常用的查找方式(顺序查找,折半查找)。为了演示方便,顺序查找和折半查找的数据存储结构就直接采用数组。1、顺序查找顺序查找又称线性查找,主要用于在线性表中进行查找;顺序查找跟我们用循环遍历进行暴力破解类似。。直接看代码:#define N 11//顺序查找(适用于线性表)int Seq_Search(int *arr, int key) { int i; arr[0] = key

2020-08-29 16:46:23 8326

原创 C语言数据结构之二叉排序树

C语言数据结构之二叉排序树tips:前些天学习了线索二叉树,今天来总结一下二叉排序树的相关操作。二叉排序树(BST):若左子树非空,则左子树上所有结点的值均小于根结点的值;若右子树非空,则右子树上所有结点的值均大于根结点的值;二叉排序树的左右子树也是一棵二叉排序树;总之,二叉排序树的中序序列是一个递增的序列。二叉排序树的存储结构与普通二叉树相同:typedef struct node{ int key;//关键字 struct node *left; struct node *

2020-08-28 23:20:23 1658

原创 C语言数据结构之线索二叉树

C语言数据结构之线索二叉树tips:前些天学习了二叉树的相关操作,今天来总结一下线索二叉树的操作。线索二叉树:对二叉树以某种次序遍历得到序列中的前驱和后继,其中指向结点前驱和后继的指针称为线索,再加上线索的二叉树称之为线索二叉树。线索化:对二叉树以某种次序遍历使其变成线索二叉树的过程称为线索化1、线索二叉树的存储结构lchildltagdatartagrchild其中,标志域的含义:ltag0:lchild域指示结点的左孩子;1:lchild域指示结点的前驱;

2020-08-28 22:42:18 650

原创 C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历)

C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历)tips:前些天学习了C语言数据结构链表,栈,队列。今天来学习一下C语言数据结构之二叉树的各种操作。注意:二叉树的层次建树是建立的完全二叉树。完全二叉树:对满二叉树进行编号,约定编号从1开始,从上到下,从左至右,每个结点的编号与其深度相同的满二叉树结点的编号一一对应。完全二叉树的性质:具有n个结点的完全二叉树的深度为 ⌊log⁡2n\log_2nlog2​n⌋+1;若编号为i的结点左右子树存在,则其左子树的编号为

2020-08-27 13:50:49 5805

原创 C语言数据结构之顺序队列

C语言数据结构之顺序队列tips:前些天学习了顺序表和顺序栈,今天来看看c语言数据结构之队列的基本操作。队列的特点是先进先出,后进后出。因此我们使用一个队头指针和一个队尾指针分别指向队头元素,以及队尾元素的下一个位置。首先我们创建一个顺序队列的结构体#define MaxSize 10 //定义队列中最大元素个数typedef struct { int data[MaxSize];//用静态数组存放队列元素 int front, rear;//队头指针和队尾指针,这里队尾指针指向的是队尾

2020-08-19 19:49:50 3581 2

原创 C语言数据结构之顺序栈

C语言数据结构之顺序栈tips:前些天学习了顺序表的一系列操作,今天来看看C语言数据结构之顺序栈的实现以及关于顺序栈的各种操作。栈的特点是先进后出,后进先出,在数组中可利用一个指向数组下标指针top来进行顺序栈的相关操作。首先我们定义一个顺序栈的结构体#define MaxSize 10 //给顺序栈定义默认大小typedef struct { int data[MaxSize];//静态数组存放栈中元素 int top;//栈顶指针(数组下标)}Stack,*pStack;准备

2020-08-19 18:01:01 1489

原创 C语言数据结构之顺序表的增删改查

C语言数据结构之顺序表的增删改查tips:前些天学习了链表的操作以及相关的数据结构,今天我们来学习一下c语言数据结构之顺序表的增删改查。顺序表采用顺序存储,即把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间关系由存储单元的邻接关系来体现。首先创建一个顺序表的结构体,采用动态数组的方式来实现顺序表#define InitSize 10//动态分配顺序表的默认最大长度//定义顺序表的结构体(动态顺序表)typedef struct student { int *data;//

2020-08-17 22:48:14 3527

原创 C语言数据结构之队列的实现(链表实现)

C语言数据结构之队列的实现tips:前些天学习了链表和栈,今天来看看c语言数据结构之队列的实现以及队列的各种操作。队列的特点是先进先出,后进后出,因此我们很容易就能够想到用单链表的尾插法,和头部删除法去实现队列的入队和出队的操作。首先我们来看一下队列的各种操作的实现思路以及具体实现过程准备工作:创建队列元素的结构体//定义结点typedef struct tag{ int val;//队列(链表)的值 struct tag *pNext;}Node,*pNode;

2020-08-15 11:20:30 1944 1

原创 C语言数据结构之栈(链表实现)

C语言数据结构之栈(链表实现)tips:前些天学习了单链表的增删改查,对于双向链表和循环链表而言,无非就是对单链表的指针进行稍微的变换。今天来看看c语言数据结构之栈的实现以及栈的各种操作。栈的特点是先进后出,后进先出,因此我们很容易联想到去使用单链表的头插法,和头部删除法去实现入栈和出栈的操作。首先我们来看一下栈的各种操作的实现思路以及具体实现过程准备工作:创建栈中元素的结构体typedef struct tag { int val;//栈(链表)的值,即数据域部分 struct

2020-08-11 22:24:24 2167

原创 C语言数据结构之链表的增删改查

C语言数据结构之链表的增删改查tips:昨天学习了c语言结构体,今天来看看c语言数据结构之链表的增删改查操作首先我们创建一个简单的学生信息结构体,作为后面增删改查的主体student结构体包含数据域:学号,分数;指针域:一个指向后继结点的pNext指针;typedef struct student { int num; int score; struct student *pNext;}stu, *pstu;链表测试输出函数//链表打印void lis

2020-08-10 10:57:10 5210 1

原创 C语言结构体与结构体指针的使用

C语言结构体与结构体指针的使用tips:最近要好好学习一下数据结构,所以必不可少的就是c语言的结构体和结构体指针了,所以就整理一下这些基础知识c语言结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合。说的通俗一点就是一个集合。c语言是一门面向过程的编程语言,而结构体的使用在某些层次上跟面向对象有点异曲同工之处了。下面回归正题,学习一下结构体以及结构体指针的知识。一、结构体变量的定义和初始化1、首先我们来看一下结构体的定义 struct 结构体名 { 成员列表; }

2020-08-08 22:29:02 56814 20

原创 Springboot整合SSM框架详细流程(附:demo查询表中所有数据)

Springboot整合SSM框架详细流程(附:demo查询表中所有数据)1、Springboot简单介绍在SpringBoot框架出现之前,Java EE开发最常用的框架是Spring,该框架虽然是轻量级的,但它的配置却是重量级的。SpringBoot是在原有Spring框架的基础上通过注解的方式进一步简化了Spring框架的使用。我们一般把Spring Boot称为搭建程序的脚手架, 或者说是便捷搭建基于Spring的工程脚手架。其最主要作用就是帮助开发人员快速的构建庞大的spring项目,并且尽

2020-08-02 21:04:17 4235

原创 Java中IO流(Stream)分类介绍和基础使用

Java中IO流(Stream)分类及基础介绍一、Java流的分类1. 输入流和输出流1.1 输入流 数据从各种输入设备(包括文件、键盘等)中流向程序的流。所有输入流类都是 InputStream 抽象类(字节输入流)和 Reader 抽象类(字符输入流)的子类。其中 InputStream 类是字节输入流的抽象类,是所有字节输入流的父类。 1.2输出流数据从程序流向各种输出设备的流。所有输出流类都是 OutputStream 抽象类(字节输出流)和 Writer 抽象类(字符输出流)的子

2020-07-23 02:10:41 1812

原创 JavaSwing使用简单多线程实现随机点名可视化应用程序

JavaSwing使用简单多线程实现随机点名可视化应用程序1.首先来看一下小程序最终实现的效果初始界面运行及终止界面ps:运行状态中显示的名称是随机变换的,但是截图并不能看出效果哦^_^。2.具体的实现过程及方法首先我们用JavaSwing先把这个界面写出来,然后再在相应的控件按钮上添加点击事件,实现不同的控制逻辑即可,下面一起看看具体的实现过程吧^_^。开始按钮的事件及实现 //定义开始按钮 JButton btnStart = new JButton("开始"); btn

2020-07-19 00:42:29 2024 5

原创 Java多线程基础

Java多线程基础1.线程的概念要学习java多线程的基础,我们首先要了解一些线程的基本概念,那么什么是线程呢?    一般来说线程是操作系统能够进行运算调度的最小单位。线程是包含在进程中,作为进程进行实际的运作单位。    线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源。线程是共享进程所拥有的资源,一个线程可以创建和撤销另一个线程,一个进程中可以并发多个线程,每条线程并行执行不同的任务(多

2020-07-18 14:30:37 954

原创 JavaWeb使用ajax实现前后端代码分离的学生课表生成

JavaWeb使用ajax实现前后端代码分离的学生课表生成1. 先建立对应的数据库的表(student(Sno),course(Cno),SC(Sno,Cno))其中Sno为学生的学号,也为student(学生表)的主键;Cno为课程的课程号,也为course(课程表)的主键;Sno,Cno为SC(选课表)的主键。2. 创建数据表对应的java实体类Student类:package webtask.model;public class Student { private String S

2020-07-17 14:38:26 2442 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除