
基础算法
AuroraN
这个作者很懒,什么都没留下…
展开
-
二叉树(C语言)
二叉树三种遍历,层次遍历,创建二叉树原创 2022-06-15 23:34:54 · 239 阅读 · 0 评论 -
KMP 数据结构
next[j]的含义是:在字串第j个字符匹配失败时,直接跳转到子串的下表为j的位置再与主串进行比较 #include<iostream> #include<cstring> #include<algorithm> using namespace std; void Find_next(string T,int next[]) { int i=0,j=-1; next[0]=-1; while(i<T.length()-1) { if(j==-1||T[i原创 2022-05-06 19:01:45 · 465 阅读 · 0 评论 -
队列(c语言/链表)
用链表储存队列,原理是放两个头指针和尾指针,在队尾添加元素,在队首删除元素,清楚这个原理,再考虑一下特殊情况即可,比方说删除元素后队列内无元素及时把头指针尾指针指向空,其余的情况看代码即可 #include<stdio.h> #include<windows.h> typedef struct LinkLNode { int data; struct LinkLNode* next; }LinkLNode; typedef struct { LinkLNod原创 2022-04-22 20:22:59 · 1579 阅读 · 0 评论 -
队列(C语言)
这里首先展示的是分配一块连续的储存单元存放队列中的元素的储存方法,逻辑上用的结构为环(防止上溢出)的循环队列: 在做循环队列的题目时,明确几个容易混淆的概念(假设数组存储空间为N) 1.存储单元下标是:从0到N-1,即能存储数据的个数为N-1个。 2.为了防止溢出,构成环结构,而形成环结构为了判断队空还是队满则放弃了一个存储单元 #include<stdio.h> #include<windows.h> #define MaxSize 5 typedef struct{ in原创 2022-04-20 21:21:58 · 929 阅读 · 0 评论 -
栈(C语言实现)
想要进行出栈以及各种栈操作,添加到主函数即可,栈的基础功能函数已经写好 #include<stdio.h> #include<windows.h> #define MaxSize 50 typedef struct{ int data[MaxSize]; int top; }SqStack; void Init(SqStack &S)///初始化 { S.top=-1; } bool StackEmpty(SqStack S) { if(S.t原创 2022-04-18 20:33:38 · 695 阅读 · 0 评论 -
对双链表的操作(c语言实现)
跟单链表相比差距很大的在于头插和尾插法 #include<stdio.h> #include<iostream> #include<stdlib.h> #include<windows.h> typedef struct LNode { int data; struct LNode *next; struct LNode *prior; }LNode; void CreatDoubleLinkList_head(LNode *&L,int a原创 2022-04-17 16:03:53 · 478 阅读 · 0 评论 -
对单链表的操作(c语言)
**如果想实操把该注释的给注释掉就可以了** #include<stdio.h> #include<iostream> #include<stdlib.h> #include<windows.h> typedef struct LNode { int data; struct LNode *next; }LNode; void createlisthead(LNode *&L, int a[], int n)///头插 { LNode *s;原创 2022-04-17 15:35:43 · 302 阅读 · 0 评论 -
二叉树的层序遍历(leetcode 102)
102. 二叉树的层序遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(原创 2021-11-12 19:54:06 · 121 阅读 · 0 评论 -
最大字序和(一直感觉很有意思的题目)
题目: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例 2: 输入:nums = [1] 输出:1 示例 3: 输入:nums = [0] 输出:0 示例 4: 输入:nums = [-1] 输出:-1 示例 5: 输入:nums = [-100000] 输出:-100000 提示: 1 <原创 2021-10-20 15:16:33 · 128 阅读 · 0 评论 -
c语言常用小tips
1.直接要求输入含有空格的字符串 #include<stdio.h> #include<string.h> int main() { char s[1005]; scanf("%[^\n]",s); puts(s); return 0; } 2,输入含有空格的字符串之前有输入 #include<stdio.h> #include<string.h> int main() { int n; scanf("%d",原创 2020-11-26 20:47:18 · 628 阅读 · 0 评论 -
大数相乘(c语言实现)
具体思想: 每一位相乘后 对应项累加,再按照进位的原则更新答案数组,要注意的是的答案数组下标的更新与对应项累加息息相关,可以根据代码推一组简单地数,就应该能理解。 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> #include<math.h> #include<queue> #include<vector> #inclu原创 2021-06-04 17:27:57 · 390 阅读 · 0 评论 -
大数相减(c语言实现)
减数与被减数之间的关系: 一.被减数大于减数,直接按照顺序 不够的借位 二.被减数小于减数,交换位置后标记处-号 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> #include<math.h> #include<queue> #include<vector> #include<map> #include<原创 2021-06-04 17:00:56 · 542 阅读 · 0 评论 -
大数相加(c语言实现)
题目: 川哥可谓是我校ACM起家的鼻祖,虽然早已毕业却特别关注这次科技节的校赛,特意嘱咐,一定会A+B的大数加法! 输入 多行测试数据,每行包含两个正整数a和b,a和b的范围不会超过1000位 输出 输出a+b的结果 样例输入 1 1 1000 2000 样例输出 2 3000 ac代码: #include<string.h> #include<algorithm> #include<iostream> #include<math.h> #include<原创 2021-06-04 14:43:29 · 2517 阅读 · 1 评论 -
搜索(队列)
深搜广搜的队列写法模板 Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has原创 2020-05-23 23:25:17 · 306 阅读 · 0 评论