数据结构
计算机存储,组织数据的方式。存数据的,而且是在内存中存
算法
算法是一种解决特定问题的思路
数组与链表的对比
- 数组的优势在于能够快速定位元素,对于读操作多、写操作少的场景来说,用数组更合适一些
- 链表的优势在于能够灵活地进行插入和删除操作,如果需要在尾部频繁插入、删除元素,用链表更合适 一些
队列
链表实现
入队时移动tail, 出队时移动head
public void enqueue(Node node){
if (tail == null){
head = node;
tail=node;
}else {
tail.next = node;
tail = node;
}
size++;
}
public Node dequeue (){
if (head == null) return null;
Node h = head;
//将拉取的节点的下一个节点变成新的表头
head = head.next;
//把旧的表头的下一个节点指向设置为null,让gc回收
h.next = null;
//队列为空
if (head == null)
tail = null;
size--;
return h;
}
递归
递归,去的过程叫"递",回来的过程叫”归“
递是调用,归是结束后回来
是一种循环,而且在循环中执行的就是调用自己
递归调用将每次返回的结果存在栈帧中
二叉树
满二叉树要求所有分支都是满的;而完全二叉树只需保证最后一个节点之前的节点都齐全即可
前序遍历
根,左,右
中序遍历
根,左,右
后序遍历
左,右,根
B树和B+树区别
B树是非叶子节点和叶子节点都会存储数据。
B+树只有叶子节点才会存储数据,而且存储的数据都是在一行上,而且这些数据都是有指针指向 的,也就是有顺序的。
网友评论