数据结构
晴空对晚照
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[MOOC-DS]04-树7 二叉搜索树的操作集
题目描述函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST );Position FindMax( BinTree BST );其中BinTree结构定义如下:typedef struct TNode原创 2021-10-24 16:05:12 · 104 阅读 · 0 评论 -
LC删除链表的倒数第N个节点
在这里了解到一个概念:哨兵节点->参考简单来说,就是一个附加在原链表最前面用来简化边界条件的附加节点,它的值域不存储任何东西,只是为了操作方便而引入这里还是采用双指针形式,删除节点很熟悉,现在只要找到的就是要删除的结点的前一个结点a,再让a->next=a->next->next/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *nex..原创 2021-09-08 18:08:08 · 150 阅读 · 0 评论 -
快慢指针模型
快慢指针应用判断是否有环—>环形链表I判断入环结点—>环形链表II找2链表交叉点–>相交链表找倒数第k个结点–>固定长度后并行移动找链表n分点—>回文链表原创 2021-09-08 21:43:52 · 110 阅读 · 0 评论 -
[python与CSP的姻缘]202206-3 角色授权
CSP 202206-3 角色授权-python解法原创 2023-05-19 20:41:26 · 138 阅读 · 0 评论 -
前缀和+差分数组
差分数组和前缀和思想,多用与对一段区间的操作原创 2023-05-16 14:27:31 · 496 阅读 · 0 评论 -
[Python与CSP的姻缘]202209-3 防疫大数据
CSP认证2022年9月第3题 防疫大数据原创 2023-03-18 09:19:26 · 278 阅读 · 0 评论 -
[PYTHON-CSP-前缀和]20210402-邻域均值
前缀和算法 202104-02 邻域均值 Python解CSP原创 2022-09-13 11:46:45 · 391 阅读 · 0 评论 -
[PYTHON与CSP的姻缘]2021-09-02非零段划分
CSP 2021-09-02非零段划分 Python解法 前缀和+差分数组原创 2022-09-13 08:47:55 · 207 阅读 · 0 评论 -
[PYTHON与CSP的姻缘]202009-3点亮数字人生
CSP-2020年9月第三题:点亮数字人生原创 2022-08-30 17:49:22 · 424 阅读 · 1 评论 -
[PYTHON与CSP的姻缘]202212-3 JPEG 解码
CSP 202212-3 JPEG 解码原创 2023-03-13 20:04:46 · 328 阅读 · 0 评论 -
[python与CSP的姻缘]201312-3最大的矩形
CSP-201312-3 最大的矩形,python解法,使用类前缀和的思想原创 2023-04-23 16:33:06 · 120 阅读 · 0 评论 -
[Python解CSP之路]风险人群筛查
菜鸟纠错记录,烦请大佬指正!原创 2022-06-03 13:57:57 · 265 阅读 · 0 评论 -
[python和CSP的姻缘]202109-2 非零段划分
CSP 差分数组+后缀和原创 2023-05-27 22:10:21 · 199 阅读 · 0 评论 -
[CSP]202012-2期末预测之最佳阈值
算法小白的CSP练习之路(毛也不会,写的菜请大佬指正)原创 2022-06-02 22:16:22 · 456 阅读 · 0 评论 -
[Python-CSP]202209-2 何以包邮?
2022年9月CSP第2题:何以包邮(python解法,使用动态规划)原创 2023-05-03 18:46:36 · 281 阅读 · 0 评论 -
CSP注意点
算法思想需要对连续数据的处理:注意利用前缀和思想,用数组连续两个值的累加/差关系处理例:201312-3 最大的矩形原创 2023-04-23 16:20:56 · 119 阅读 · 0 评论 -
[python与CSP的姻缘] 202206-2 寻宝!大冒险!
CSP认证2022年6月第二题,寻宝!大冒险! python解法原创 2023-05-09 15:32:06 · 164 阅读 · 0 评论 -
[Python与CSP的姻缘] 202112-2 序列查询新解
CSP 202112-2 序列查询新解原创 2023-05-25 12:29:33 · 231 阅读 · 0 评论 -
[python与CSP的姻缘] 202203-2 出行计划——差分数组
CSP 2022年3月2题 出行计划,使用差分数组原创 2023-05-16 12:08:29 · 252 阅读 · 0 评论 -
[python与CSP的姻缘]202212-2 训练计划
考试的时候看见这个题第一反应去想拓扑排序了,一紧张没弄清楚最晚时间的规律。。。其实这个也用不到拓扑排序,题目给简化了。主要理解最晚时间的计算,倒着计算比较好入手,关键就是理解题意的问题。原创 2023-04-25 14:12:27 · 147 阅读 · 0 评论 -
[PYTHON与CSP的姻缘]2023-3 LDAP
CSP 2023-3-3 LDAP 的Python解法原创 2023-04-20 12:14:20 · 314 阅读 · 0 评论 -
CSP历年试题记录-(更新中ing...)
CSP历年题目的要点提示与题解链接原创 2023-04-24 16:45:19 · 642 阅读 · 0 评论 -
循环队列设计
有个注意点class MyCircularQueue {public: vector<int> queue; int head,tail; int size; MyCircularQueue(int k) { queue.reserve(k); head=-1; tail=-1; size=k; } bool enQueue(int value) {原创 2021-09-28 12:19:16 · 110 阅读 · 0 评论 -
176 · 图中两个点之间的路线
题目题解我的写法:直接纯递归要注意返回时的判断#include<iostream>#include<vector>#include<queue>using namespace std;struct DirectedGraphNode { int label; vector<DirectedGraphNode *> neighbors; DirectedGraphNode(int x) : label(x) {};};原创 2021-11-11 11:58:31 · 130 阅读 · 0 评论 -
[HBU-实验]2-7 一元多项式求导 (20 分)
问题描述这里主要熟悉的时在没给定结束条件时要如何结束:抓住特征:系数+指数,是一对,一次是要两个,所以可以根据输入元素的返回情况判断scanf的返回值!代码#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); int a,b; int flag=0; while(scanf("%原创 2021-09-19 21:55:14 · 132 阅读 · 0 评论 -
(6-1 6-2)图的深度优先遍历和广度优先遍历
这种东西……纯属有题才能会……深度优先(邻接矩阵)题目描述测试样例:#include <stdio.h>typedef enum {false, true} bool;#define MaxVertexNum 10 /* 最大顶点数设为10 */#define INFINITY 65535 /* ∞设为双字节无符号整数的最大值65535*/typedef int Vertex; /* 用顶点下标表示顶点,为整型 */typedef int WeightTyp原创 2021-11-15 14:44:02 · 149 阅读 · 0 评论 -
[HBU-实验]2-8 符号配对 (20 分)(未完成)
基本思路:判断能否配对,利用堆栈(符号配对状态)用一个map来记录应有配对,遇到右侧符号时看map里是否符合还差最后一个点……不知道是什么边边角角的测试,回头再搞搞吧#include<bits/stdc++.h>using namespace std;int main(){ stack<string> mark; vector<string> sentence; string s; string ch; int nu.原创 2021-09-20 14:07:17 · 153 阅读 · 0 评论 -
[HBU-实验] 3-4 双端队列 (20 分)(小注意点)
题目描述3-4 双端队列 (20 分)双端队列(deque,即double-ended queue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作:Push(X,D):将元素X插入到双端队列D的头;Pop(D):删除双端队列D的头元素,并返回;Inject(X,D):将元素X插入到双端队列D的尾部;Eject(D):删除双端队列D的尾部元素,并返回。函数接口定义bool Push( ElementTy原创 2021-10-01 21:02:37 · 209 阅读 · 0 评论 -
[HBU-实验]3-5 单链表分段逆转 (20 分)
代码给定一个带头结点的单链表和一个整数K,要求你将链表中的每K个结点做一次逆转。例如给定单链表 1→2→3→4→5→6 和 K=3,你需要将链表改造成 3→2→1→6→5→4;如果 K=4,则应该得到 4→3→2→1→5→6。函数接口定义:void K_Reverse( List L, int K );其中List结构定义如下:typedef struct Node PtrToNode;struct Node {ElementType Data; / 存储结点数据 /PtrToNode原创 2021-10-05 14:55:45 · 213 阅读 · 0 评论 -
1-6 求链式线性表的倒数第K项 (20 分)
题目描述说取倒数第k个,最简单的想法就是用头插法变成正数第k个#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Node *next;}Lnode,*LinkList;int main(){ int n=0; int k; scanf("%d",&k); LinkList L=NULL; Lnode原创 2021-09-09 14:58:37 · 778 阅读 · 0 评论 -
[HBU-DB实验]2-8 符号配对 (20 分)
题目代码记由一行标记引发的命案……#include<bits/stdc++.h>using namespace std;int main(){ stack<string> mark; string s; string ch; int num=0; map<string,string> sign; sign["/*"]="*/"; sign["("] = ")"; sign["{"] = "}";原创 2021-09-26 16:16:30 · 227 阅读 · 1 评论 -
1-1 顺序表操作集
本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { Eleme原创 2021-09-06 21:57:54 · 114 阅读 · 0 评论 -
python数据结构与算法[更新ing...]
总结阅读过程中常见的数据结构与算法原创 2023-04-24 18:55:39 · 479 阅读 · 0 评论 -
python内置数据结构常见操作易错总结[更新ing...]
记录python的内置的一些数据结构,在算法比赛中可以尝试使用原创 2023-04-25 12:15:26 · 532 阅读 · 0 评论 -
7-4 树的遍历 (20 分) 后序+中序恢复层序
参考链接:????https://blog.youkuaiyun.com/shiliang97/article/details/102924283带点注释理解一下题目思路层序按行输出,对树的分析类似于完全二叉树,不好分层就利用完全二叉树的下标具体分析见注释#include <bits/stdc++.h>using namespace std;vector<int> post,in,level(100000,-1 ); //要在多个函数间调用,所以声明为全局比较好int n;原创 2021-12-04 15:37:05 · 873 阅读 · 0 评论 -
[HBU-DS] 7-5 部落(并查集)
7-5 部落 (20分)题目在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。输入格式:输入在第一行给出一个正整数N(≤10e4 ),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:K P[1] P[2] ⋯ P[K]其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的编号。这里所有人的编号从1开始原创 2021-11-20 18:50:42 · 170 阅读 · 0 评论 -
[LC] 验证二叉搜索树
题目给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例代码要求/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *原创 2021-11-06 12:44:05 · 150 阅读 · 0 评论 -
[LC]二叉树的序列化与反序列化
题目序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示: 输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其原创 2021-11-06 12:23:30 · 130 阅读 · 0 评论 -
LC 二叉树的最近公共祖先
题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例题解思路:找最近,那就从下往上找。入口是根,从下往上找所以要用递归最近祖先,所以两个肯定一个在左结点一个在右结点——>下层两个递归只要找到一个,他往上走的所有结点都可以标记为true要是找到两个(即左右都为true),则可以确定此为根节原创 2021-11-01 13:45:56 · 124 阅读 · 0 评论 -
[LC] 从中序与后序遍历序列构造二叉树
题目分析一些函数按想法搜索过的函数在vector中查找一个元素:find()find函数主要实现在容器内查找指定的元素,且这个元素必须是基本数据类型的查找成功返回一个指向指定元素的迭代器,查找失败返回end迭代器eg.在此处,后续遍历的最后一个值是根,在中序中找到这个值就可以分段int x=postorder.back();TreeNode node=TreeNode(x);auto it=find(inorder.begin(),inorder.end(),x);find_原创 2021-10-22 11:15:11 · 138 阅读 · 0 评论
分享