自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (1)
  • 收藏
  • 关注

原创 001常用cmd命令

cmd

2022-10-17 22:42:57 298 1

原创 3.排序与分页

mysql入门-排序与分页

2022-06-08 16:33:48 199

原创 2.运算符

mysql入门-运算符

2022-06-08 16:16:33 151

原创 1.基本的SELECT语句--B站尚硅谷mysql学习之路

mysql入门之基本的SELECT语句详解

2022-06-08 16:11:30 119

原创 电文的编码与译码

内容:从键盘接收一串电文字符,输出对应的Huffman(哈夫曼)编码,同时,能翻译由Huffman编码生成的代码串,输出对应的电文字符串。设计要求:(1).构造一棵Huffman树;(2).实现Huffman编码,并用Huffman编码生成的代码串进行译码;(3).程序中字符和权值是可变的,实现程序的灵活性。步骤: 算法分析 本设计使用结构体数组存储Huffman树。程序中设计了两个函数:函数HuffmanTree()用来构造一个Huffman树;...

2021-11-29 08:00:00 3898

原创 采用邻接矩阵形式存储图,进行图的深度优先搜索并输出结果。

内容:采用邻接矩阵形式存储图,进行图的深度优先搜索并输出结果。步骤:算法分析本题需要利用邻接矩阵的形式存储图,并对图进行深度优先搜索并输出结果。大体上可以分为两个部分,一是采用邻接矩阵的方式存储图,二是对图进行深度优先搜索并输出。对于第一部分,图是一种结构复杂的数据结构,图的常用存储结构有四种,分别为邻接矩阵、邻接表、十字链表和邻接多重表。其中相较于十字链表和邻接多重表来说,邻接矩阵和邻接表较为简单,也更好理解。此题采用邻接矩阵形式存储图,存储时分为两个部分,顶点的信息和顶点之间的关系,分

2021-11-28 23:30:00 1518

原创 求二叉树中度为1的结点个数

内容:若用二叉链表作为二叉树的存储表示,设计算法求二叉树中度为1的结点个数。步骤:1.算法分析本题需要采用二叉链表作为二叉树的存储结构,来求解二叉树中度为1的结点个数。大体上分为两部分,第一,建立二叉树,此处采用先序的方式建立二叉树,其次需要用二叉链表来存储一棵二叉树,任意的二叉树中,每个结点最多有两个孩子,一个双亲结点,因此在一个结点中只需要包括数据域、左孩子和右孩子即可,当左孩子或右孩子不存在时,用符号#表示,声明二叉树的二叉链表结点的结构如下:typedef struct BiT.

2021-11-21 00:00:00 11882 1

原创 求最长公共子串

内容:采用顺序结构存储串,设计实现求串s和串t的一个最长公共子串的算法。步骤:算法分析本题算法采用顺序存储结构求串s和串t的最大公共子串。串1用i指针,串2用t指针,对每个i,求从i开始的连续字符串与从j开始的连续字符串的最大匹配。当字符串1中某字符SeqString1[i + j] 与字符串2中某字符 SeqString2[j]相等时,求出局部公共子串。若该字串长度大于已求出的最长公共子串max,则最长公共子串的长度Max要修改。2.概要设计使用C语言,其中设置了以下函...

2021-10-30 23:19:47 1174 1

原创 KMP算法的实现

内容:求一个字符串在另一个字符串中第一次出现的位置。要求:利用键盘输入两个字符串,一个设定为主串,另一个设定为子串,对这两个字符串应用KMP算法,求出子串在主串中第一次出现的位置。1.步骤:KMP算法:是克努特、莫里斯和普拉特同时设计的一种模式匹配算法,这个算法可以大大避免重复的遍历。KMP算法的思路就是分析子串,找出子串的特点,主串的i指针不回溯。将模式串中各个位置的j值的变化定义为一个数组next,模式中的每一个Tj都对应一个k值。程序中设计了两个函数:函数GetNext()用来求n

2021-10-30 17:06:20 162

原创 用三元组实现稀疏矩阵的转置

内容:设m*n的矩阵中有t个非零元素且t<<m*n,这样的矩阵成为稀疏矩阵,在存储稀疏矩阵时,按照常规方法存储时相当浪费内存,因此提出另外一种存储方法,即只存储非零元素,但在这类矩阵中,通常零元素的排列没有规律,为了能找到相应的元素,仅存储非零元素的值是不够的,还要记下它所在的行和列。于是采取如下办法:将非零元素所在的行、列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节约存储空间。编写程序用三元组表实现稀疏矩阵的按列转置操作。步骤:算法分析本

2021-10-30 12:43:05 11233 2

原创 队列置空队、判空、入队出队

内容:假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素节点(注意不设头结点),试编写相应的置空队、判队空、入队和出队等算法。步骤:算法分析本题是循环链表基本操作的扩展,题中设有一个指针指向队尾元素的结点,此时要实现元素入队,则直接采用链表的插入操作即可。因题中不设有头结点,因此要实现出队操作,则需要尾指针找到头结点和开始结点,然后进行删除。在进行置空队操作时,只需要使queue.rear->next=queue.rear;即可,进行判空队操作时,则需要判断queue.rea

2021-10-24 00:42:31 1685

原创 判断一个字符串是否为回文序列

内容:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文。试写一个算法判定给定的字符向量是否为回文。步骤:算法分析本算法利用数组和栈实现,其主要思路为将从键盘输入的所有元素入栈,然后依次出栈与数组元素比较。主要步骤为键盘输入需要判断的字符串存放在数组中,然后将数组中的元素依次进栈,栈顶元素出栈与数组元素进行比较,若为回文序列,则输出“该字符串是回文序列”,否则输出“该字符串不是回文序列”。其中利用到数据结构中所学的栈这一线性表,包括顺序栈的定义、初

2021-10-23 17:11:49 3579 1

原创 回溯算法之八皇后问题

内容:皇后问题是一个古老而著名的问题,是回溯算法的典型问题,该问题是19世纪著名的数学家高斯于1850年提出的:在8*8格的国际象棋棋盘上,安放八个皇后,要求没有一个皇后能够“吃掉”任何其他一个皇后,即任意两个皇后都不能处于同一行、同一列或同一条对角线上,这样的格局称为问题的一个解。写一个程序求出所有解。使用二维数组实现。步骤:算法分析 八皇后在棋盘上分布的各种可能的各局数目非常大,约等于2^32种,但是,可以将一些明显不满足问题要求的格局排除掉。由于任意两个皇后不能同行,...

2021-10-22 22:25:50 301

原创 十进制整数转换为任意进制数

内容:将十进制整数num转换为r进制数,其转换方法为辗转相除法。要求用链栈实现。步骤:算法分析本题需要将十进制整数num转换为任意进制数,要求使用链栈实现转换。程序中设计了四个函数,(1)函数InitStack()用来初始化一个顺序栈,(2)函数Empty()用来实现栈的判空操作,(3)函数Pop()用来实现元素的出栈操作,(4)函数Convert()用来实现数值转换。数值转换问题需要用到栈的基本操作,程序中用三个函数分别实现链栈的入栈、判断栈空和出栈操作。主函数有两个输入,即输入待转..

2021-10-21 00:28:27 1562 1

原创 线性链表的分割

1.内容:已知一个线性链表表示的线性表中含有三类字符的数据元素(如字母字符,数字字符和其它字符),试编写算法将该线性链表分割为三个循环链表,其中每个循环链表表示的线性表中均只含有一类字符。2.算法分析首先建立三个只有头结点的单循环链表,分别是数字链表LA,字母链表LB,其他字符链表LC,然后,依次从以及链表中读取结点,如果结点的值域为数字,则将其插入到数字单循环链表中,如果结点的值域为字母,则将其插入到字母单循环链表中,如果结点的值域为其它字符,则将其插入到其他字符的单循环链表中,最后,设置每...

2021-10-06 00:07:13 370

原创 单链表逆置

1.内容:用单链表作为存储结构,实现将线性表就地逆置的操作,所谓“就地”,指辅助空间应为O(1)。2.算法分析本题需要利用链表作为存储结构实现线性表的就地逆置,可以使用交换数据的方式来达到数据的逆置,但是由于是单链表,数据的存取不是随机的,因此算法效率太低,可以利用指针改指来达到表逆置的目的,当链表为空表或只有一个结点时,该链表的逆置链表与原表相同;当链表包含两个以上结点时,可将该链表处理成只含有第一个结点的带头结点链表和一个无头结点的包含该链表剩余结点的链表,然后,将该无头结点链表中的所有结点顺着

2021-10-05 20:49:58 1581

原创 顺序表的逆置

1.内容:用顺序表作为存储结构,实现将线性表就地逆置的操作,所谓“就地”,指辅助空间应为O(1)。2.算法分析利用顺序表实现线性表就地逆置操作,其基本思想为将顺序表的第一个元素与最后一个元素进行互换,将第二个元素与顺序表的倒数第二个元素进行互换……以此类推,便可将顺序表中的所有元素进行逆置操作,当顺序表中的元素个数为偶数时,则两两互换之后刚好,不会遗留单独元素,但当顺序表中的元素为奇数时,两两互换之后剩下最中间的元素,则需要添加一个元素使其变成偶数。3.概要设计使用C语言,其中设置了以...

2021-10-05 15:39:46 5747

原创 利用链表求集合的差集

内容:如果以单链表表示集合,假设集合A用单链表LA表示,集合B用单链表LB表示,设计算法求两集合的差,即A-B。用C语言实现程序解决问题。 算法分析:由集合运算的规则可知,集合的差A-B中包含所有属于集合A而不属于集合B的元素。具体做法是,对于集合A中的每一个元素,在集合B的链表LB中进行查找,若存在与A中元素相同的元素,则在LA中将其删除。 首先需要定义链表结点的结构类型,然后选择使用两个while循环遍历这两个单链表,用pre和q存储相应的结点和待删除的节点,pa和pb分别用来遍历这两个单..

2021-10-04 20:31:33 1271

原创 两个多项式的和

一、内容:完成两个多项式的相加操作:已知有两个多项式Pm(x)、Qm(x),设计算法实现Pm(x)+Qm(x)运算,而且对加法运算不重新开辟存储空间。要求用链式存储结构实现。二、算法分析本题需要完成两个多项式的相加操作,并使用链式存储结构实现。首先,需要先设计四个函数:函数Init() 用来初始化一个空链表 函数CreateFromTail() 用来创建一个链表,这里是用尾插法来创建链表 函数Polyadd() 用来实现两个多项式的相加算法 函数Print() 用来输出多项式其次需要将两

2021-10-04 20:09:32 874

原创 数组

关于数组一、数组1.数组的定义:数组是一种用于存储多个相同类型数据的存储模型。2、数组的定义格式:数据类型 [ ] 变量名例如:int [ ] arr 定义了一个int类型的数组,数组名为arr二、数组初始化之动态初始化1、何为数组初始化?数组中的元素必须经过初始化才能使用,而初始化便是为数组中的元素分配内存空间,并为每个数组元素赋值。2、数组初始化有两种形式:动态初始化和静态初始化(1)动态初始化:初始化时只指定数组的长度,由系统为数组分配初始值,格式如下:数组类型[ ] 数组名

2021-09-11 22:18:08 133

空空如也

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

TA关注的人

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