- 博客(18)
- 收藏
- 关注
原创 【数据结构】-内部排序(归并排序)
内部排序-归并排序写在前面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 757 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 692
原创 【数据结构】-内部排序(交换排序)
内部排序-交换排序写在前面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 787
原创 【数据结构】-内部排序(插入排序)
内部排序-插入排序写在前面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 584
原创 【数据结构】-折半查找
折半查找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 793
原创 【数据结构】-顺序查找
顺序查找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 438
原创 【数据结构】-二叉树的应用(二叉排序树)
二叉排序树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>
2020-08-12 17:38:38 3173
原创 【数据结构】-线索二叉树(后序)
后序线索化二叉树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 4384
原创 【数据结构】-线索二叉树(先序)
先序线索化二叉树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 7590
原创 【数据结构】-线索二叉树(中序)
中序线索化二叉树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 1608 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 8028 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 1455 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 1314
原创 【数据结构】-二叉树(链式存储)
二叉链表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 3351
原创 【数据结构】-串的模式匹配
串的模式匹配写在前面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 987
原创 【数据结构】-串的顺序存储(动态分配)
串的堆分配存储-动态分配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 2087
原创 【数据结构】-串的顺序存储(静态分配)
串的定长顺序存储-静态分配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 3279 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 3817
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人