1.二叉树先序、中序、后序遍历之间的关系
先看一个例子:
先序遍历:1,2,4,8,9,5,10,11,3,6,12,13,7,14,15;
中序遍历:8,4,9,2,10,11,5,1,12,6,13,3,14,7,15;
后序遍历:8,9,4,10,11,5,2,12,13,6,14,15,7,3,1;
可以看到,在先序遍历中,二叉树的根节点是第一个元素;在后序遍历中是最后一个;在中序遍历中则需要根据先序或后序来寻找。在这三种遍历中,左子树的所有节点都是在整个遍历的左侧,右子树的所有节点都在整个遍历的右侧。因此根据先序和中序或者后序和中序即可得到一个二叉树,但是通过先序和后序是不能得到二叉树的,因为不能得到左右子树的节点数量。
2.造函数和普通函数的区别
1.使用目的:
构造函数: 用于创建和初始化对象,通常以大写字母开头,便于识别。
普通函数: 用于执行一般的操作,可以有返回值,不一定创建新对象。
2.返回值:
构造函数: 通常不需要显式返回值,因为构造函数的目的是初始化对象,this 指向新对象。
普通函数: 可以通过 return 语句返回值,返回值会传递给调用者。
3.调用方式:
构造函数: 使用 new 关键字调用,创建一个新的对象实例。构造函数内部的 this 指向新创建的对象。
普通函数: 直接调用,不使用 new 关键字。普通函数内部的 this 指向调用该函数的对象(在非严格模式下),或者是全局对象(在严格模式下)。
简单总结一下就是:构造函数需要使用new关键字调用,使用大驼峰命名法,没有返回值,this指向新对象;普通函数不需要使用关键字,使用小驼峰命名法,可以有返回值,this指向调用的对象。