给你10个有序树
画出有向图,如何将森林转成二叉树
兄弟连手足,
解除其他兄弟的父子关系
起始节点,终端节点
拓扑序列
入度为0,删除与此节点相连的其他,多个结果
正向邻接表,逆向邻接表
ASL查找成功查找了多少次
二叉排序树:
中序遍历后为递增
二叉
逻辑结构分为:线性结构和非线性结构
存储结构:
n个元素的线性表第一个位置插入元素到n+1
满二叉树的节点总数第一层是1,第二层是2 。。。。2的k次方减1
n个节点的无向图最多 n(n-1)/2
有向图n(n-1)/2
任意一个节点左指针域右指针,指针总数为2n
每一个分支都对应一个非空指针,分支树=非空指针数=n-1(除了根节点都有一个分支)
空指针数目=2n-(n-1)=n+1=n0
非空M=N-1=n0-1-1=n0-2
从根节点到叶子结点
二叉树的先序遍历和图的深度优先相似
{D,R}D是数据的集合,R是关系
先序为abdec,中序是dbeac求后序
调用递归函数时使用名称为栈
顺序表和链表优缺点
插入和删除慢,预先分配结构
链表则是浪费空间要地址存,增删快,查找慢
二叉树的度最大为二,树没有限制,二叉树有左右子树的区分
哈希思想:hash表的主要思想就是键值对,一个键和一个值,键是唯一不可重复的,键和值的类型是object类型,访问时可以根据键来做索引,直接得到值,不需要循环。具体解决冲突的方法有线性,平方,链式三种方法
监视哨作用和应用:在判断循环队列,降低算法时间复杂度。是程序中的一个变量,在程序中和这个变量进行对比,若出现某些某种关系就进行某种操作
比如:对数据排序的话,那么该变量一般是数值型变量,变量的赋值就相当于哨兵,当排序数列中出现与哨兵相等的值或者有某种既定关系出现时,就做某种操作,比如停止排序,或进行下一趟排序。