数组场景:个数固定,不需要频繁的插入删除。优点:占用空间小,支持随机访问。链表场景:当数量不确定,需要频繁插入和删除时。栈场景:1.浏览器后退函数2.检查符号是否成对出现({})3.反转字符串4.维护函数调用(虚拟机栈)队列场景:1.生产者-消费者或模型图度:表示一个顶点连接到多少条边。入度:指向顶点的边。出度:从一个顶点到另一个顶点的边。Unweightedgraphsandweightedgraphs:边加权图的存储1使用矩阵存储,A[X,Y]表示x和y的两个顶点之间的关系无向图:矩阵的内容是一个角对称的1010有向图:矩阵的内容是不对称的10102用链表存储:无向图:X-Y-Z-K表示x和yzk连通。有向图:X-Y-X-K表示x指向yzk图的搜索广度优先搜索:先搜索x,再搜索xy,xz直连x,再搜索下一层的xyk,xyj。可以使用队列。深度优先搜索:先搜索x,再搜索xy,再搜索xyk,再搜索xz。它可以使用堆栈来实现。堆初始化有序数组的时间:Onlogn初始化堆的时间:Onlogn从堆中插入和删除数据的时间:Ologn使用数组存储二叉树:根为节点1,左子树为21,右子树21+1插入堆中将要插入的元素放在末尾。如果该节点的父节点不如它大,则交换它。直到父节点大于自身。删除堆顶方法一删除堆顶,释放堆顶。左右子树,较大的成为堆顶,释放空间。循环直到没有空位。方法2删除堆顶,将左右子树和堆尾的末尾数放在一起,谁大就是堆顶,和末尾转置。循环直到结束返回结束。堆排序创建一个无序数组作为堆,交换堆顶和堆底的位置,将剩余的n-1个元素堆成堆,然后交换新堆的顶和倒数第二个位置,循环。循环。如果堆中有n个节点,则从第一个节点到第n/2个节点都是叶节点。从第N/2个节点开始排序到第1个节点。堆积完成。
