自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构】-内部排序(归并排序)

内部排序-归并排序写在前面1.头文件及类型定义2.函数声明3.基本操作3.1 归并3.2 主过程3.3 输出4.main函数5.小结写在前面【说明】以下代码实现最终为递增序列,即从小到大排序。1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType int //定义数组元素类型#define LEN 7 //定义数组长度2.函数声明/*函数声明*/void Merge(ElemType A[]

2020-08-17 18:51:20 628 1

原创 【数据结构】-内部排序(选择排序)

内部排序-选择排序写在前面1.头文件及类型定义2.函数声明3.基本操作3.1 简单选择排序3.1.1 交换3.1.2 简单选择主过程3.1.3 输出测试3.2 堆排序3.2.1 堆调整3.2.2 建立大根堆3.2.3 堆排主过程3.2.4 输出测试4.main函数5.小结写在前面【说明】以下代码实现最终均为递增序列,即从小到大排序。1.头文件及类型定义#include<stdio.h>#define ElemType int2.函数声明/*函数声明*/void swap(int

2020-08-16 18:29:48 414

原创 【数据结构】-内部排序(交换排序)

内部排序-交换排序写在前面1.头文件及类型定义2.函数声明3.基本操作3.1 冒泡排序3.1.1 交换3.1.2 冒泡主过程3.2 快速排序3.2.1 划分3.2.2 快排主过程4.main函数5.小结写在前面【说明】以下代码实现最终均为递增序列,即从小到大排序。1.头文件及类型定义#include<stdio.h>#define ElemType int2.函数声明/*函数声明*/void swap(int& a, int& b); //1-1.交

2020-08-15 18:13:07 371

原创 【数据结构】-内部排序(插入排序)

内部排序-插入排序写在前面1.头文件及类型定义2.函数声明3.基本操作3.1 直接插入排序3.2 折半插入排序3.3 希尔排序4.main函数5.小结写在前面【说明】以下代码实现最终均为递增序列,即从小到大排序。1.头文件及类型定义#include<stdio.h>#define ElemType int2.函数声明/*函数声明*/void DirectInsertSort(ElemType A[], int n); //1.直接插入排序void HalfInsertSor

2020-08-14 17:40:22 411

原创 【数据结构】-折半查找

折半查找1.头文件及类型定义2.顺序表类型定义3.函数声明4.基本操作4.1 初始化顺序表4.2 赋值4.3 折半查找★★★4.4 main函数5.小结1.头文件及类型定义#include<stdio.h>#define ElemType int#define MaxSize 102.顺序表类型定义//顺序表的类型定义(静态分配)typedef struct { ElemType elem[MaxSize]; //用静态数组存放数据元素 int length; //

2020-08-13 19:23:15 562

原创 【数据结构】-顺序查找

顺序查找1.头文件及类型定义2.顺序表类型定义3.函数声明4.基本操作4.1 初始化顺序表4.2 赋值4.3 顺序查找★★★4.4 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define InitSize 10 //初始化数组长度#define ElemType int 2.顺序表类型定义//顺序查找表类型定义-顺序表(动态分配)typedef struct { ElemType* elem;

2020-08-13 19:22:35 330

原创 【数据结构】-二叉树的应用(二叉排序树)

二叉排序树BST1.头文件及类型定义2.二叉排序树结点类型定义3.函数声明4.基本操作4.1 查找操作4.1.1 非递归查找4.1.2 递归查找4.2 插入操作4.2.1 非递归插入4.2.2 递归插入4.3 构造二叉排序树4.4 删除操作4.4.1 寻找最左下结点4.4.2 寻找最右下结点4.4.3 删除操作-用右子树中最左下结点填充4.4.4 删除操作-用左子树中最右下结点填充4.5 中序遍历4.6 main函数4.7 测试结果5.小结1.头文件及类型定义#include<stdio.h&gt

2020-08-12 17:38:38 3027

原创 【数据结构】-线索二叉树(后序)

后序线索化二叉树1.头文件及类型定义2.线索二叉树结点类型定义3.函数声明4.基本操作4.1 先序建立线索二叉树4.2 初始化tag4.3 后序线索化二叉树4.3.1 访问并建立线索4.3.2 遍历4.3.3 后序线索化主过程4.4 寻找后序前驱4.5 逆向后序遍历4.5.1 打印结点4.5.2 利用后序前驱实现逆向后序遍历4.6 main函数4.7 测试4.7.1 二叉树结构4.7.2 测试结果5.小结1.头文件及类型定义#include<stdio.h>#include<stdl

2020-08-11 21:12:13 3879

原创 【数据结构】-线索二叉树(先序)

先序线索化二叉树1.头文件及类型定义2.线索二叉树结点类型定义3.函数声明4.基本操作4.1 先序建立线索二叉树4.2 初始化tag4.3 先序线索化二叉树4.3.1 访问并建立线索4.3.2 遍历4.3.3 先序线索化主过程4.4 寻找先序后继4.5 先序遍历4.5.1 打印结点4.5.2 利用先序后继实现先序遍历4.6 main函数4.7 测试4.7.1 二叉树结构4.7.2 测试结果5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h

2020-08-10 18:19:48 7095

原创 【数据结构】-线索二叉树(中序)

中序线索化二叉树1.头文件及类型定义2.线索二叉树结点类型定义3.函数声明4.基本操作4.1 先序建立线索二叉树4.2 初始化tag4.3 中序线索化二叉树4.3.1 访问并建立线索4.3.2 遍历4.3.3 中序线索化主过程4.4 寻找中序后继4.4.1 找到最左下结点4.4.2 找到p的后继结点4.4 寻找中序前驱4.4.1 找到最右下结点4.4.2 找到p的前驱4.5 中序遍历和逆向中序遍历4.5.1 打印结点4.5.2 利用中序后继实现中序遍历4.5.2 利用中序前驱实现逆向中序遍历4.6 main

2020-08-09 17:47:22 1345 1

原创 【数据结构】-二叉树的层次遍历(队列的应用)

二叉树的层次遍历★算法思想★1.头文件及元素类型定义2.相关类型定义3.函数声明4.基本操作4.1 初始化队列4.2 判空4.3 入队操作4.4 出队操作4.5 先序建立二叉树4.6 打印结点4.7 二叉树的层次遍历4.8 main函数4.9 测试4.9.1 二叉树结构4.9.2 测试结果5.小结★算法思想★初始化一个辅助队列根结点入队若队列非空,则队头结点出队,访问该结点,并将其左、右孩子插入队尾(如果有的话)重复3中的操作直至队列为空PS:从上述算法思想中可以看出需要用到的队列相关操作

2020-08-08 18:11:31 7397 3

原创 【数据结构】-二叉树的先序、中序、后序遍历-非递归实现

二叉树的遍历-先序、中序、后序1.头文件及类型定义2.二叉链表结点类型定义3.函数声明4.基本操作4.1 先序建立二叉树4.2 打印结点4.3 先序遍历4.4 中序遍历4.5 后序遍历4.6 main函数4.7 测试4.7.1 二叉树结构4.7.2 测试结果5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType char2.二叉链表结点类型定义//二叉链表结点类型定义typedef struc

2020-08-07 17:22:26 1076 1

原创 【数据结构】-二叉树的先序、中序、后序遍历-递归实现

二叉树的先序、中序、后序遍历-递归实现1.头文件及类型定义2.二叉链表结点类型定义3.函数声明4.基本操作4.1 先序建立二叉树4.2 打印结点4.3 先序遍历4.4 中序遍历4.5 后序遍历4.6 main函数4.7 测试4.7.1 二叉树结构4.7.2 测试结果5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType char2.二叉链表结点类型定义//二叉树结点类型定义typedef st

2020-08-06 18:27:54 1079

原创 【数据结构】-二叉树(链式存储)

二叉链表1.头文件及类型定义2.二叉链表结点类型定义3.函数声明4.基本操作4.1 先序建立二叉树4.2 求树的深度4.3 寻找中序前驱4.3.1 辅助全局变量4.3.2 访问结点4.3.3 遍历4.4 main函数4.5 测试4.5.1 二叉树结构4.5.2 测试结果5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType char2.二叉链表结点类型定义//二叉链表结点类型定义typedef

2020-08-05 18:06:41 2995

原创 【数据结构】-串的模式匹配

串的模式匹配写在前面1.头文件及类型定义2.串类型定义3.函数声明4.基本操作4.1 初始化串4.2 赋值操作4.3 朴素(简单)模式匹配算法1★★4.4 朴素(简单)模式匹配算法2★★4.5 求next数组★★★4.6 KMP算法★★★4.7 next数组优化★★★4.8 main函数5.小结写在前面关于串的模式匹配,本文以定长顺序存储表示来进行实现。这部分内容通过画图加以理解可以达到更好的效果,以下仅给出代码实现。1.头文件及类型定义#include<stdio.h>#incl

2020-08-04 16:32:12 734

原创 【数据结构】-串的顺序存储(动态分配)

串的堆分配存储-动态分配1.头文件及类型定义2.串类型定义3.函数声明4.基本操作4.1 初始化串4.2 增加串的长度4.3 求串长4.4 清空4.5 判空4.6 赋值操作★4.7 复制操作★4.8 联接操作★4.9 求子串操作★★4.10 比较操作★★4.11 定位操作★★★4.12 销毁操作4.13 遍历4.14 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define MAXLEN 10 //预定义

2020-08-03 18:36:21 1912

原创 【数据结构】-串的顺序存储(静态分配)

串的定长顺序存储-静态分配1.头文件及类型定义2.串类型定义3.函数声明4.基本操作4.1 初始化串4.2 求串长4.3 清空4.4 判空4.5 赋值操作★4.6 复制操作★4.7 联接操作★4.8 求子串操作★★4.9 比较操作★★4.10 定位操作★★★4.11 遍历4.9 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define MAXLEN 10 //预定义最大串长为2552.串类型定义ty

2020-08-02 19:25:39 2830 2

原创 【数据结构】-链队列(带头结点)

链队列-带头结点1.头文件及类型定义2.链队列类型定义3.函数声明4.基本操作4.1 初始化队列4.2 判空4.3 入队4.4 出队4.5 获取队头元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType intusing namespace std;2.链队列类型定义typedef struct LinkNode { //链式队列的结点类型定义 ElemType d

2020-08-01 17:44:40 3561

原创 【数据结构】-链队列(无头结点)

链队列-无头结点1.头文件及类型定义2.链队列类型定义3.函数声明4.基本操作4.1 初始化队列4.2 判空4.3 入队4.4 出队4.5 获取队头元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType intusing namespace std;2.链队列类型定义typedef struct LinkNode { //链式队列的结点类型定义 ElemType d

2020-07-31 17:45:56 2180 4

原创 【数据结构】-循环队列3(顺序存储)

顺序存储-循环队列21.头文件及类型定义2.循环队列类型定义3.函数声明4.基本操作4.1 初始化队列4.2 判空4.3 入队4.4 出队4.5 获取队头元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#define MaxSize 10 //定义队列中元素的最大个数#define ElemType int using namespace std;2.循环队列类型定义typedef struct { //顺序队列类型定义 El

2020-07-30 18:42:58 309

原创 【数据结构】-循环队列2(顺序存储)

顺序存储-循环队列21.头文件及类型定义2.循环队列类型定义3.函数声明4.基本操作4.1 初始化队列4.2 判空4.3 入队4.4 出队4.5 获取队头元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#define MaxSize 10 //定义队列中元素的最大个数#define ElemType int using namespace std;2.循环队列类型定义typedef struct { //顺序队列类型定义 El

2020-07-29 20:47:00 390

原创 【数据结构】-循环队列1(顺序存储)

顺序存储-循环队列11.头文件及类型定义2.循环队列类型定义3.函数声明4.基本操作4.1 初始化队列4.2 判空4.3 入队4.4 出队4.5 获取队头元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#define MaxSize 10 //定义队列中元素的最大个数#define ElemType int using namespace std;2.循环队列类型定义typedef struct { //顺序队列类型定义 El

2020-07-28 17:16:32 714

原创 【数据结构】-栈的应用(括号匹配、表达式求值、递归)

栈的应用一、写在前面二、括号匹配1.头文件及类型定义2.顺序栈类型定义3.函数声明4.基本操作4.1 初始化顺序栈4.2 判空4.3 入栈4.4 出栈4.5 括号匹配逻辑代码4.6 main函数三、表达式求值四、递归1.n的阶乘函数2.Debug函数调用栈3.斐波那契函数4.Debug函数调用栈5.main函数五、小结一、写在前面关于接下来介绍的栈的应用,本质上都离不开问题本身都具有后进先出的特点,这就是为什么栈可以解决这些问题的原因。括号匹配[]、{}、()这三种括号在编译器中都已经见惯不惯了,

2020-07-27 18:37:56 1056

原创 【数据结构】-链栈(带头结点)

链栈-带头结点1.头文件及类型定义2.链栈类型定义3.函数声明4.基本操作4.1 初始化链栈4.2 判空4.3 入栈4.4 出栈4.5 读取栈顶元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType int using namespace std;2.链栈类型定义typedef struct LinkStackNode { //链栈类型定义 ElemType d

2020-07-26 21:55:45 3391

原创 【数据结构】-链栈(无头结点)

链栈-无头结点1.头文件及类型定义2.链栈类型定义3.函数声明4.基本操作4.1 初始化链栈4.2 判空4.3 入栈4.4 出栈4.5 读取栈顶元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType int using namespace std;2.链栈类型定义typedef struct LinkStackNode { //链栈类型定义 ElemType d

2020-07-25 20:10:40 2021 3

原创 【数据结构】-共享栈

共享栈共享栈示意图1.头文件及类型定义2.共享栈类型定义3.函数声明4.基本操作4.1 初始化共享栈4.2 1号栈判空4.3 2号栈判空4.4 1号栈入栈4.5 2号栈入栈4.6 1号栈出栈4.7 2号栈出栈4.8 1号栈读取栈顶元素4.9 2号栈读取栈顶元素4.10 main函数5.小结共享栈示意图1.头文件及类型定义#include<stdio.h>#define MaxSize 10#define ElemType int //定义共享栈中元素的最大个数using nam

2020-07-24 20:00:50 7030 2

原创 【数据结构】-顺序栈(初始化栈顶指针为0)

顺序栈-初始化栈顶指针为01.头文件及类型定义2.顺序栈类型定义3.函数声明4.基本操作4.1 初始化顺序栈4.2 判空4.3 入栈4.4 出栈4.5 读取栈顶元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#define MaxSize 10#define ElemType int //定义顺序栈中元素的最大个数using namespace std;2.顺序栈类型定义typedef struct { ElemType data[

2020-07-23 18:51:19 5200 8

原创 【数据结构】-顺序栈(初始化栈顶指针为-1)

顺序栈-初始化栈顶指针为-11.头文件及类型定义2.顺序栈类型定义3.函数声明4.基本操作4.1 初始化顺序栈4.2 判空4.3 入栈4.4 出栈4.5 读取栈顶元素4.6 main函数5.小结1.头文件及类型定义#include<stdio.h>#define MaxSize 10#define ElemType int //定义顺序栈中元素的最大个数using namespace std;2.顺序栈类型定义typedef struct { ElemType data

2020-07-22 19:39:35 5056

原创 【数据结构】-循环链表(双链表)

循环双链表-带头结点1.头文件及类型定义2.循环双链表结点类型定义3.函数声明4.基本操作4.1 初始化循环双链表4.2 判空4.3 判断表尾结点4.4 按位查找4.5 指定结点后插4.6 删除指定结点后继结点4.7 创建循环双链表4.8 遍历4.9 销毁循环双链表4.10 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType intusing namespace std;2.循环

2020-07-21 16:50:02 712

原创 【数据结构】-循环链表(单链表)

循环单链表-带头结点1.头文件及类型定义2.循环单链表结点类型定义3.函数声明4.基本操作4.1 初始化循环单链表4.2 判空4.3 判断表尾结点4.4 按位查找4.5 指定结点后插4.6 创建循环单链表4.7 遍历4.10 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h>#define ElemType intusing namespace std;2.循环单链表结点类型定义typedef struct

2020-07-20 20:29:49 754

原创 【数据结构】-双链表(带头结点)

双链表-带头结点1.头文件及类型定义2.双链表结点类型定义3.函数声明4.基本操作4.1 初始化双链表4.2 判空4.3 查找操作4.3.1 按位查找4.3.2 按值查找4.4 插入操作4.4.1指定结点插入4.4.1.1后插4.4.1.1.1 给结点4.4.1.1.2 给元素值4.4.1.2 前插4.4.2 按位插入4.5 删除操作4.6 创建双链表4.7 销毁双链表4.8 求表长4.9 遍历4.10 main函数5.小结1.头文件及类型定义#include<stdio.h>#inclu

2020-07-19 17:47:07 1481

原创 【数据结构】-单链表(带头结点)

单链表-带头结点1.头文件及类型定义2.单链表结点类型定义3.函数声明4.基本操作4.1 初始化单链表4.2 判空4.3 插入操作4.3.1 按位插入4.3.2 指定结点插入4.3.2.1 指定结点后插4.3.2.2 指定结点前插4.3.2.2.1 前插法1(时间复杂度为O(n))4.3.2.2.2 前插法2(时间复杂的为O(1))4.4 删除操作4.4.1 按位删除4.4.2 指定结点删除4.4.2.1 删除法1(时间复杂度为O(n))4.4.2.2 删除法2(时间复杂度为O(1))4.5 查找操作4.5

2020-07-18 17:09:30 2491

原创 【数据结构】-单链表(无头结点)

单链表-无头结点1.头文件及类型定义2.单链表结点类型定义3.函数声明4.基本操作4.1 初始化单链表4.2 判空4.3 插入操作4.3.1 按位插入4.3.2 指定结点插入4.3.2.1 指定结点后插4.3.2.2 指定结点前插4.3.2.2.1 前插法1(时间复杂度为O(n))4.3.2.2.2 前插法2(时间复杂的为O(1))4.4 删除操作4.4.1 按位删除4.4.2 指定结点删除4.4.2.1 删除法1(时间复杂度为O(n))4.4.2.2 删除法2(时间复杂度为O(1))4.5 查找操作4.5

2020-07-18 08:46:12 3992 2

原创 【数据结构】-顺序表(动态分配)

顺序表-动态分配1.头文件及类型定义2.顺序表类型定义3.函数声明4.基本操作4.1 初始化顺序表4.2 求表长4.3 判空4.4 增加动态数组的长度4.5 插入操作4.6 删除操作4.7 查找操作4.7.1 按位查找4.7.2 按值查找4.8 遍历4.9 main函数5.小结1.头文件及类型定义#include<stdio.h>#include<stdlib.h> //malloc和free函数的原型在头文件<stdlib.h>中#define InitSiz

2020-07-17 08:48:09 5882 3

原创 【数据结构】-顺序表(静态分配)

顺序表-静态分配1.头文件及类型定义2.单链表结点类型定义3.基本操作-初始化4.main函数5.小结1.头文件及类型定义#include<stdio.h>#define MaxSize 10 //定义顺序表最大长度using namespace std;2.单链表结点类型定义typedef struct { //顺序表的类型定义 int data[MaxSize]; //用数组存放数据元素 int length; //顺序表的当前长度}SeqList;3.基

2020-07-16 23:24:19 1251

空空如也

空空如也

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

TA关注的人

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