摘要: //并查集 #include <stdio.h> #define SIZE 100 int UFSets[SIZE]; void initial(int S[])//初始化并查集 全部设为-1 即每一个元素都是独立的 { for(int i=0;i<SIZE;i++) { S[i]=-1; } } 阅读全文
posted @ 2023-05-02 23:03 正方形的被子 阅读(16) 评论(0) 推荐(0) 编辑
摘要: // 线索化二叉树的递归算法 #include <stdio.h> #include <malloc.h> typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild; // 存储二叉树的左孩子和右孩子 } BiTNode, 阅读全文
posted @ 2023-05-01 09:28 正方形的被子 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 二叉树中的遍历以及线索二叉树的创建对递归的使用非常频繁,递归对我来说也一直是模糊不清的概念。 故写下此篇文章帮助理解递归。 一.递归的定义 "一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层,当最内层的函数执行完毕后,再一层一 阅读全文
posted @ 2023-04-25 16:37 正方形的被子 阅读(39) 评论(0) 推荐(0) 编辑
摘要: // 二叉树的遍历(非递归算法) #include <stdio.h> #include <malloc.h> #include <stdbool.h> typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild; // 存储 阅读全文
posted @ 2023-04-25 11:25 正方形的被子 阅读(11) 评论(0) 推荐(0) 编辑
摘要: //二叉树的遍历(递归算法) #include <stdio.h> #include <malloc.h> typedef struct BiTNode { int data; struct BiTNode *lchild,*rchild;//存储二叉树的左孩子和右孩子 }BiTNode,*BiTr 阅读全文
posted @ 2023-04-24 09:13 正方形的被子 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 之前在编写需要修改指针内容的函数时,一般采用双指针的写法,即函数参数中写"**p",然后用"&p"将存储p指针的地址输入进去,这样的方法易于理解,但是在程序上会显得非常麻烦,易读性不强。 而408王道数据结构中的示例代码也是采用引用(&)的方式,故metoo 一.引用的概念 "引用不是新定义一个变量 阅读全文
posted @ 2023-04-24 09:02 正方形的被子 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 一.头文件上 1.为什么c++语言的头文件上可以使用"stdio.h"? 答:因为c++的标准库已经帮我们包含了c语言的标准库,因此c++也可以实现c语言能实现大多功能。例如"iostream"是c++的输入输出流头文件,"stdio.h"是c语言的输入输出流头文件,当在 c++语言中调用"stdi 阅读全文
posted @ 2023-04-23 11:34 正方形的被子 阅读(44) 评论(0) 推荐(0) 编辑
摘要: KMP算法的实现 1.基本原理 在暴力破解算法(BF算法)中,模式串需要一个一个来跟主串进行对比,若有一个不相同,则主串前进一位,继续从头开始进行比较,这样比较的最坏时间复杂度为O(mn),例:‘aaaaaaaaab’和‘aaab’,需要比较到最后一个才能成功,效率太过低下。 KMP算法的原理是,找 阅读全文
posted @ 2023-04-10 20:07 正方形的被子 阅读(84) 评论(0) 推荐(0) 编辑
摘要: //串的简单模式匹配(BF算法) #include <stdio.h> #define MAXSIZE 30 typedef struct { char ch[MAXSIZE]; int length; }SString; int SString_BFindex(SString S,SString 阅读全文
posted @ 2023-04-05 21:21 正方形的被子 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 艺术千秋,人生朝露 阅读全文
posted @ 2023-04-02 21:19 正方形的被子 阅读(32) 评论(0) 推荐(0) 编辑
摘要: //队链 #include <stdio.h> #include <malloc.h> #include <stdbool.h> typedef struct LinkNode//定义队链结点 { int data; struct LinkNode *next; }LinkNode; typedef 阅读全文
posted @ 2023-04-01 14:57 正方形的被子 阅读(40) 评论(0) 推荐(0) 编辑
摘要: //循环链表 //牺牲一个单元来区分队空还是队满 #include <stdio.h> #include <stdbool.h> #define MAXSIZE 6 typedef struct { int data[MAXSIZE]; int front,rear; }CySqQueue; voi 阅读全文
posted @ 2023-04-01 09:34 正方形的被子 阅读(37) 评论(0) 推荐(0) 编辑
摘要: //基本顺序队列 #include <stdio.h> #include <stdbool.h> #define MAXSIZE 50 typedef struct { int data[MAXSIZE]; int front,rear; }SqQueue; void initSqQueue(SqQ 阅读全文
posted @ 2023-03-31 19:07 正方形的被子 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 如下,通过将指针所在的地址传入函数中即**p的形式,来保证直接对地址进行运算,而不需要再返回一个链表 //双链表 #include <stdio.h> #include <stdbool.h> #include <malloc.h> typedef struct DNode { int data; 阅读全文
posted @ 2023-03-31 12:42 正方形的被子 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 错误示范,打印不出L->data的值,因为传入的是指针变量,更改数据的话,要把地址传进函数,才能把更改后的数据传出来: //单链表 #include <stdio.h> #include <stdbool.h> #include <malloc.h> typedef struct LNode { i 阅读全文
posted @ 2023-03-31 09:28 正方形的被子 阅读(36) 评论(0) 推荐(0) 编辑