单链表和双链表

单链表

使用数组模拟单链表

使用一个数组存储值, 另一个数组存储next

邻接表 存储图和树

 

e[idx] = val;

ne[idx] = next;

 

双链表

优化某些问题

int l[idx], r[idx]

下标为0表示 左端点, 下标为1表示右端点

 

//插入

stk[++tt] = x;

//弹出

tt--

//判断栈是否为空

if (tt > 0) not empty

else empty

 

//栈顶

skt[tt]

 

队列

 //在队尾插入元素,在队头弹出元素

int q[N], hh, tt = -1

//插入

q[++tt] = x;

 

//弹出

hh++;

 

//判断队列是否为空

if(hh <= tt) not empty

 

//取出队头元素

q[hh]

 

单调栈

求左边最小最近的元素

 

单调队列

 

posted @ 2019-07-11 12:58  roov  阅读(3)  评论(0编辑  收藏  举报