树概念
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。
二叉树概念
一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和 右子树的二叉树组成。
<script>
//创建二叉树的节点
//二叉树包含:自身数据(data),左节点(left),有节点(right),显示自己的数据(show)。
function str(data,left,right){
this.data=data;
this.left=left;
this.right=right;
this.show=show;
}
//声明二叉树的构造函数
//二叉搜索树(binary search tree),也叫二叉排列数
function skr(){
this.root=null;//默认根节点为null
this.insert=insert;//插入操作
this.inOrder=inOrder;//中序遍历
this.getMin=getMin;//找出最小值
this.getMax=getMax;//找出最大值
this.find=find;//找出指定数据
}
</script>
</html>
二叉树的特点:
1.每个结点最多有两棵子树,即二叉树不存在度大于2的结点。
2.二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树
Set数据结构属性和方法
1.属性: s.size // set成员总数
2.方法:
操作方法(操作数据):
<script>
//Es6提供了新的数据类型Set。
//创建Set数据结
// const s1 = new Set()
// Set函数可以接收一个数组作为参数,用来初始化。
const a=new Set([1,2,3,4,5])
console.log(a);
console.log(a.size);
//利用Set进行数组去重
let arr =[1,22,33,44,55]
let set=new Set(arr)
console.log(set);
console.log([...set]);
</script>
</html>
ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值
set结构的实例和数组一样,也具有forEach方法,用于对每个成员执行某种操作,没有返回值
Set的增删改查
4个操作方法:
add(value)
:添加某个值,返回 Set 结构本身。
delete(value)
:删除某个值,返回一个布尔值,表示删除是否成功。
has(value)
:返回一个布尔值,表示该值是否为Set
的成员。
clear()
:清除所有成员,没有返回值。
<script>
const set =new Set();
//向set结构中添加值 使用add方法
set.add('a').add('b')
console.log(set.size);
console.log(set);
//从set结构中删除值 用的方法是delete
const result=set.delete('a')
console.log(set.size);
console.log(set);
//判断一个值是否是Set结构的成员 用的方法是has
const set1= set.has('d');
console.log(set1)//输出true
//从set结构中清空成员 用的方法是clear
set.clear()
console.log(set.size);
</script>
</html>
效果图:
Set数据结构的遍历
Set结构的实例有4个遍历方法,可以用于遍历成员。
keys()
:返回键名的遍历器
values()
:返回键值的遍历器
entries()
:返回键值对的遍历器
forEach()
:使用回调函数遍历每个成员
Set结构的实例默认是可遍历,它的默认遍历器生成函数就是它的values方法。