关于数据结构
Posted Nico&11101001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于数据结构相关的知识,希望对你有一定的参考价值。
单调队列
:
code by zhx
void dandiao() { int front=1,tail=0; for (int a=1;a<=k;a++) { while (tail>=front && z[a]<q[tail][0]) tail--; tail++; q[tail][0]=z[a];q[tail][1]=a; } for (int a=k+1;a<=n;a++) { while (tail>=front && z[a]<q[tail][0]) tail--; tail++; q[tail][0]=z[a];q[tail][1]=a; if (q[front][1]==a-k) front++; } }
手写队列+手写 栈:
stack:
class stack { int size=0,s[10000]; void enque(int x) { s[++size]=x;} void deque() { size--;} bool empty() { return size!=0;} int front() { return s[size]; }
队列:
class queue { int front=1,tail=0,q[10000]; void enque(int x) { q[++tail]=x;} void deque() { front++;} bool empty() { return front>tail;} int front1() { return q[front]; }
STL:中的priority_queue
priority_queue<int> heap; heap.push(-x);//logn heap.pop();//logn heap.top();//1 heap.size();//1 heap.empty();//1
并查集,启发式合并
把节点较少的合并到节点节点较多的上
是一种优化
void merge(int p1,int p2) { int f1=getf(p1); int f2=getf(p2); if (f1!=f2) { if (size[f1]>size[f2]) swap(f1,f2); f[f1]=f2; size[f2]+=size[f1]; } }
杂七杂八的线段树
code by zhx
线段树
以上是关于关于数据结构的主要内容,如果未能解决你的问题,请参考以下文章
关于js----------------分享前端开发常用代码片段
springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段