- 博客(10)
- 收藏
- 关注
原创 【无标题】遍历图的两种方法
用栈实现图的遍历#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>#define MVNum 100 //最大顶点数 using namespace std;//边结点typedef struct ArcNode { int adjvex; //顶点的下标 struct A
2021-12-14 17:41:22
276
原创 【无标题】二叉树修改
#include <iostream>#include <stdio.h>#include <queue>#include <stdlib.h>using namespace std;typedef struct BiTNode { char data; struct BiTNode *lchild, *rchild;} BiTNode, *BiTree;BiTree CreatBiTree() { BiTree T; char c.
2021-12-14 17:36:35
917
原创 字符串匹配两种方法
#include <iostream>#include <string>#include <cstring>using namespace std;char t[100], s[100];int nexkt[100];void next() { int i = 1; nexkt[1] = 0; int j = 0; while (i <= strlen(s + 1)) { if (j == 0 || s[i] == s[j]) { .
2021-12-14 17:31:58
476
原创 蛇形填数的三种方法
#include <iostream>using namespace std;int a[20][20];int main() { int n, m; cin >> n >> m; int s = 1, z = 1, x = n, y = m, k = 1; while (s <= x && z <= y) { for (int i = s; i <= y; i++) { a[s][i] = k++; }.
2021-12-14 17:27:55
445
原创 数组实现约瑟夫环
用数组实现约瑟夫环:编号为1,2,…,n的n个人按顺时针方向围坐一圈。现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的人全部出列为止。代码如下:#include <stdio.h>#include <malloc.h> void left_num(int* a,int n,int m) { int
2021-11-23 17:31:54
583
原创 回文数的判断
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。栈的构建:使用栈的时候需要构建栈的Init(),pop(),push()等方法,Init()构建一个空栈;pop()删除栈顶的元素并返回其值;push()插入元素为新的栈顶元素;具体代码如下:#include <stdio.h>#include <stdlib.h>#include<string.h>#define OK 1#define ERRO
2021-11-23 11:31:39
100
原创 BF算法与KMP算法
暴力匹配(BF)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较,直到得出最后的匹配结果。BF算法部分缺陷:1.当第一个字符不相同时j也会继续向后比较,比如例子中的“abcdefg”和“def”,当“a”和“d”不相同时,则明显之后的两个字符及时相等也不是相同的子串。2.每次j下标都要回到0号下标,当主串和字串匹配失败时,主串进行回溯会影响效率,
2021-11-22 23:01:03
509
原创 单链表前插,后插法
单链表前插法:算法步骤:1.创建一个只有头结点的单链表。 2.根据待创建链表包括的元素个数n,循环n次执行以下操作: 生成新的结点;输入元素值赋给新结点*p的数据区域;将新的结点*p插入到头节点之 后;相关代码如下:#include<stdio.h>struct stu{ int num; float score; ...
2021-11-22 22:40:33
1142
原创 单链表的基本操作
单链表的链式储存特点:链表是一种顺序存取结构,按位置访问链表中第i个元素时,只能从表头开始依次向后遍历链表,直到找到第i个位置上的元素,时间复杂度为O(n), 即取值操作的效率低。但在确定插入或删除的位置后,插入或删除操作无需移动数据,只需要修改指针, 时间复杂度为0(1)。若线性表的主要操作是和元素位置紧密相关的这类取值操作,很少做插入或删除时, 宜采用顺序表作为存储结构。 对于频繁进行插入或删除操作的线性表,宜采用链表作为存储结构。代码如下:其中单链表的基本操作包括:1.头插法,..
2021-11-22 22:11:22
658
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅