自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序

排序排序概念插入排序直接插入排序折半插入排序希尔排序冒泡排序快速排序选择排序简单选择排序属性选择排序堆排序归并排序基数排序多关键字的排序链式基数排序各种排序的比较排序概念插入排序直接插入排序折半插入排序希尔排序冒泡排序快速排序选择排序简单选择排序属性选择排序堆排序归并排序基数排序多关键字的排序链式基数排序各种排序的比较...

2020-07-16 21:17:53 375

原创 图(概念、存储、遍历、应用)

图基本概念存储方式邻接矩阵法邻接表法十字链表邻接多重表遍历深度优先搜索广度优先搜索基本应用最小生成树prim算法(普里姆算法)kruskal算法(克鲁斯卡尔算法)最短路径Dijkstra算法(迪杰斯特拉算法)Floyd算法(弗洛伊德算法)拓扑排序关键路径基本概念有向图:顶点之间的边是有向的无向图:顶点之间的边是无向的简单图:没有重复的边,没有到自身的边完全图:有n(n-1)/2条边的无向图(每一个顶点都与其他顶点两两相连,没有方向)有向完全图:有n(n-1)条边的有向图(每一个顶点都与其他顶点

2020-06-06 20:00:04 730

原创 树和森林(树、森林与二叉树的转化)

树和森林树的存储双亲表示法孩子表示法孩子兄弟表示法树、森林与二叉树的转化树转化为二叉树森林转换为二叉树二叉树转换为森林树的存储双亲表示法孩子表示法孩子兄弟表示法树、森林与二叉树的转化树转化为二叉树森林转换为二叉树二叉树转换为森林...

2020-06-01 17:27:34 2368

原创 线索二叉树(中序、先序、后续的前驱和后继)

线索二叉树线索二叉树基本概念构造线索二叉树中序线索二叉树先序线索二叉树后序线索二叉树线索二叉树基本概念遍历二叉树可以按一定规则得到一个线性序列(先序序列、中序序列、后序序列)。这些序列除头尾之外,都有且仅有一个前驱和一个后继。当构造线索二叉树中序线索二叉树先序线索二叉树后序线索二叉树...

2020-05-31 23:38:46 16341 7

原创 二叉树遍历的四种方式(先序、中序、后序、层序)

二叉树的遍历遍历方式先序遍历先序递归遍历中序遍历中序递归遍历后序遍历后序递归遍历层次遍历由遍历序列构造二叉树遍历方式有四种遍历方式:先序遍历、中序遍历、后序遍历、层次遍历先序遍历规则:①访问根节点②先序遍历左子树③先序遍历右子树先序递归遍历void preOrder(BiTree B){ if(B != NULL){ printf("先序访问结点 %c\n",B->data); preOrder(B->lchild); p

2020-05-29 16:00:25 1409

原创 二叉树的概念(二叉树、完全二叉树、满二叉树、二叉排序树、平衡二叉树)

二叉树的概念二叉树定义五种形态二叉树与度为2的树满二叉树完全二叉树二叉排序树平衡二叉树性质存储结构静态存储结构链式存储结构二叉树定义每个结点至多只有两棵子树(即二叉树中不存在度>2的结点),且二叉树的子树有左右之分,次序不能任意颠倒。二叉树是n个结点的有限集合:n= 0 时,为空二叉树n>0时,由一个根节点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一棵二叉树。五种形态二叉树有物种形态:空二叉树只有根节点只有左子树有左右子树只有右子树二叉树与度

2020-05-29 15:17:14 545

原创 树的基本概念(定义、基本术语、性质)

树的基本概念树的定义树的特点基本术语树的性质树的定义树的特点基本术语结点的度:树的度:分支结点:叶子结点:结点的层次:结点的深度:结点的高度:树的高度:有序树:无序树:路径:路径长度:森林:树的性质...

2020-05-28 16:36:46 1165

原创 nextval数组求解

nextval数组求解过程为什么用nextval数组nextval数组求解方式一、模式串的下标从0开始,nextval数组求解方式详解:代码实现二、模式串的下标从1开始,nextval数组求解方式详解:代码实现为什么用nextval数组next数组在某些情况下仍存在缺陷,例如 模式串"aaaab"与主串"aaabaaaab"进行匹配时:主串下标为0时的next数组为:下标012345678主串 Saaabaaaab模式串 Taaaa

2020-05-20 17:57:37 20592 8

原创 求next数组详解

next数组详解思路前缀、后缀、部分匹配值部分匹配(Partial Match,PM)表next数组求解方法代码实现前缀、后缀、部分匹配值"前缀"指除了最后一个字符以外,字符串的所有头部组合;"后缀"指除了第一个字符以外,字符串的所有尾部组合。“部分匹配值”是"前缀"和"后缀"的最长的共有元素的长度以"abcdabd"为例- "a"的前缀和后缀都为空集,共有元素的长度为0;- "ab"的前缀为[a],后缀为[b],共有元素的长度为0;- "abc"的前缀为[a, ab],后缀为[bc, c]

2020-05-20 00:20:37 8670 5

原创 求子串在主串中的位置(返回位置下标)

求子串在主串中的位置分析方法实现执行结果分析设主串S为:ababcabcac子串T为:abcaci:表示S的下标j:表示T的下标k:表示↓i=kababcabcac↑k=0abcac-----↑j=0第一次对比,i=2和j=2的值不相等,则 k 的位置后移,从主串的第二个子串开始与目标子串重新进行比较          

2020-05-15 16:27:30 4290 2

原创 链式队列的基本操作(带头结点)

链式队列的基本操作(带头结点)链式队列特点代码实现测试结果链式队列特点用单链表表示的链式队列特别适合于数据元素变动比较大的情况,不存在队列满且溢出的问题。代码实现/** * 链式队列的基本操作(带头结点) */#include <cstdio>#include <malloc.h>/** * 定义结构 */typedef struct LinkNode{ //链式队列结点 int data; //数据域

2020-05-13 21:29:00 697

原创 循环队列(即顺序存储的队列,元素循环存储)

顺序存储的队列,元素循环存储循环队列定义循环队列判空、判满循环队列长度代码实现测试结果循环队列定义在逻辑上把顺序存储的队列想象成一个环,就是循环队列。循环队列仍是顺序存储,只是元素可以循环存储在给定的存储空间。前篇文章,顺序存储队列基本操作 所描述的队列的存储空间只可以使用一次,在一些元素出队之后,空出来的空间没有办法再次存储,造成浪费,所以更多选择循环队列。两者的内存中的存储一样,只是逻辑上将两者分为了非循环和循环。循环队列判空、判满判空和判满可以有多种方式,根据自己的设计选择即可。第一种

2020-05-13 16:48:18 2810

原创 队列(顺序存储)基本操作

顺序存储队列的基本操作队列特点队列基本操作代码实现测试结果展示队列特点①队列是一种操作受限的线性表②队列只允许在一端进行插入(即入队),另一端进行删除(即出队);队尾进,对头出(First In First Out ,FIFO)队列基本操作//初始化队列,构造一个空的队列void initQueue(SqQueue &Q);//判断队列是否为空bool QueueIsEmpty(SqQueue Q);//入队操作void enQueue(SqQueue &Q,int va

2020-05-12 21:34:22 865

原创 判断出入栈的顺序序列是否合法(向函数传递一维数组)

判断出入栈的顺序序列是否合法(向函数传递一维数组)向函数传递数组问题判断出入栈的顺序序列是否合法代码实现向函数传递数组问题在c语言中,不带任何下标的数组名代表数组的首地址(pushAndPopIsValid(char sq[],int length)),即第一个元素的地址。采用数组名最为函数参数时,无需用&运算符,系统自动将数组在内存中的起始地址传递给被调函数,被调函数知道了这个数组的首地址之后就可以间接的访问存储在那里的函数值。也就是被调函数是通过间接寻址方式访问主调函数中的数组元素值。

2020-05-12 15:50:08 383

原创 带头节点的链式存储栈基本操作(进栈、出栈、获取栈顶元素)

带头节点的链式存储栈基本操作(进栈、出栈、获取栈顶元素)栈链式存储的特点链式存储栈的基本操作代码实现测试结果栈链式存储的特点链式存储,可以带头结点,或不带头结点,本篇介绍带头结点的链式存储栈的基本操作。进栈、出栈都在头结点一侧进行。由于带有头结点,可不设置栈顶指针,头结点可视为栈顶指针来进行操作。链式存储栈的基本操作代码实现/** * 带头节点的链式存储栈 */#include <cstdio>#include <malloc.h>/** * 定义结构 *

2020-05-11 17:57:32 3411

原创 顺序存储栈(进栈,出栈,获取栈顶元素)

顺序存储栈(进栈,出栈,获取栈顶元素)栈的特点(LIFO)栈的基本操作代码实现测试结果栈的特点(LIFO)① 操作受限,只允许在一端进行插入,删除操作的线性表。② (LIFO)后进先出栈的基本操作//初始化空栈int initStack(SqStack &sqStack);//判断栈是否为空bool stackIsEmpty(SqStack sqStack);//进栈操作bool push(SqStack &sqStack,int value);//出栈操作bool

2020-05-09 18:56:09 3323

原创 数组静态分配实现线性表基本操作C/C++(插入,删除,按值按位查找)

数组静态分配实现线性表基本操作C/C++线性表基本操作测试结果展示线性表基本操作/** * 数组静态分配实现线性表基本操作 */#include <cstdio>#define maxsize 10/** * 定义结构 */typedef struct { int data[maxsize]; int length;}SqList;/** * 初始化 * 思路: * 将所有空间初始化为0,若不初始化,可能有脏数据存在 * 1、将所有空间数据初始化为

2020-05-09 15:06:24 364

原创 带头结点链表的基本操作C/C++(头插法,尾插法,打印,查找,插入,删除)

带头结点链表的基本操作C/C++带头节点链表的基本操作测试结果展示带头节点链表的基本操作/** * 带头结点链表基本操作 */#include <malloc.h>#include <cstdio>/** * 定义结构 */typedef struct LNode{ //定义单链表结点类型 int data; //数据域 struct LNode *next; //指针域}LNode,*LinkList; //别名

2020-05-09 14:55:17 574

空空如也

空空如也

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

TA关注的人

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