树1、对非空二叉树遍历的三个步骤:访问根节点先序遍历左子树先序遍历右子树
前序是按的顺序得到的序列,对称序是按,后序是按
特例:根节点为A、只有左子树B,对称序为BA、前序为AB;上述序列A的右子树为C,C的左子树为D,后一个序列对称序为BADC、前序为ABCD
2、如果对一棵有n个节点的完全二叉树的节点按层序编号,则对任意结点i()有:如果i=1,结点i是二叉树的根;如果i>1,则双亲PARENT(i)是结点i/2
如果2i>n,则结点i无左孩子;否则其左孩子结点为2i
如果2i+1>n,则结点i无右孩子;否则其右孩子是结点2i+1
3、B树只适合随机检索,不适合顺序检索
B+树更常用于顺序检索
二者都是多路查找树,都是动态索引结构,都能有效支持随机检索
4、栈的应用:数值转换、括号匹配检验、行编辑程序、表达式求值、树的层序遍历、二叉树对称序周游算法等
5、栈的基本运算:push是往栈中插入一个元素、pop是从栈中删除一个元素、top是求栈顶元素的值
6、串——由0个或多个字符组成的有限序列
串中字符的数目就是串的长度
串的存储有顺序存储和链式存储两种
串的基本运算:创建串、判断串是否为空、计算串长度、串链接、求子串和串的定位
7、栈和队列的存储方式,可以是顺序方式,也可以是链式方式
栈和队列都可为空
栈能应用于递归过程实现
8、队列的基本操作:构造空队列、清空队列、判断队列是否为空、求队列长度、读取队列头元素的值、在队尾插入新元素、删除队头元素
9、二叉树是结点的有限集合,这个有限集合或者为空集,或者由一个根结点及两棵不相交的,分别称作这个根的左子树和右子树的二叉树组成
最简单的二叉树是空二叉树
10、二叉树不是树的特殊情况
树和二叉树之间最主要的区别是:二叉树的结点的子树要区分左子树和右子树,即使在结点只有一棵子树的情况下也要明确指出该子树是左