
数据结构
文章平均质量分 53
johnwayne0317
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树状数组(单点修改区间查询)
lowbit(重要!)lowbit是用来取出二进制中最低位数的1所代表的二进制的值。只需要记下代码就行了int lowbit(int x){ return x&(-x);}add单点修改前缀和将一个树的最子节点修改,则其父节点也需要更改,父父节点也需要修改。x=x+lowbit(x)就是用来取出其父节点的。void add(int x,int k){ while(x&...原创 2018-12-09 13:59:35 · 988 阅读 · 0 评论 -
差分数组
现在有数组a[7]int a[7];a[0]=1;a[1]=2;a[2]=4;a[3]=5;a[4]=12a[5]=34;a[6]=123;a[7]=3;如果要把a[0]-a[4]都加一,最朴素的方法就是a[0]++;a[1]++;a[2]++;a[3]++;a[4]++;时间复杂度为O(n)打字打着都很费力。。。但是如果先有一个神奇的差分数组d[7],就...原创 2018-12-09 15:36:53 · 2615 阅读 · 3 评论 -
前缀和
编号a1234567891011121314151617b10111213现在要从a数组中截取b数组知道b的和1000000次,而且不能够直接记下b数组的值,要一次一次算,怎么快速求?这样看也许看不出什么,但是我再画一幅图你就明白了编号...原创 2018-12-09 16:02:55 · 1460 阅读 · 0 评论 -
单向链表与双向链表
单向链表单向链表的特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;列表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向NULL的指针。双向链表双向链表的每个数据结点中都有两个指针,分别指向前面的rlink和后面的lli...原创 2018-12-09 20:35:58 · 3010 阅读 · 0 评论 -
树状数组(区间修改单点查询)洛谷:树状数组2
模版和单点修改区间查询差不多树状数组(单点修改区间查询)https://blog.youkuaiyun.com/johnwayne0317/article/details/84927585然后用到了差分数组https://blog.youkuaiyun.com/johnwayne0317/article/details/84928568代码#include <bits/stdc++.h>us...原创 2018-12-16 14:49:21 · 287 阅读 · 0 评论 -
求先序排列
题目描述给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8。输入格式:2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式:1行,表示一棵二叉树的先序。输入样例1:BADCBDCA输出样例1:ABCD解题思路就是一个先中后序遍历的问题,看代码吧,有标注示。代码#include <iostream>...原创 2019-01-05 15:19:59 · 1850 阅读 · 1 评论