JS数据结构---TypeArray、Set、栈、链表、二叉树

TypeArray

定义
  一种类数组类型,是二进制数据类型集合的总称。
TypeArray对象

在这里插入图片描述

Set

 set 是一个构造函数, 通过new关键字来创建实例, 用来保存唯一的值
创建Set数据结构
const s = new Set();

set函数可以接收一个数组作为参数,用来初始化

 const s =new Set([1,2,3,3,4,5,5,6]);
    console.log(s);//1,2,3,4,5,6
    console.log(s.size);//6

set也可以进行数组去重

 let arr =[1,22,33,33,4,55];
 let set = new Set(arr);
    console.log(set);//1,22,33,4,55
    console.log([...set]);//[1,22,33,4,55]
set增删改查
const x = new Set();
//add:添加
    x.add('a').add('b');
    console.log(x.size);//2
    console.log(x);//a,b

//delete:删除
    const result =x.delete('a');
    console.log(result);//true
    console.log(x.size);//1
    console.log(x);//b

//has:判断是否有其成员 hava-has
    const resultOne = x.has('a');
    const resultTwo = x.has('b');
    console.log(resultOne);//false
    console.log(resultTwo);//true
//clear:清空成员
    x.clear();
    console.log(x.size);//0

定义

栈是一种“先进后出”的线性数据结构。栈只有一端能够进出元素。能进出元素的一端叫栈顶,不能进出元素的一端叫栈底。当我们添加或者删除元素的时候,只能从栈顶操作。
在这里插入图片描述
上图就是一个栈,栈里面有三个元素。其中 3 号元素是栈顶,1 号元素栈底。只有当前元素是栈顶的时候才能出栈。所以上图只有 3 号元素可以出栈。如果 3 号元素出栈,那么栈顶就会变成 2 号元素。
这时候,我梦们发现,栈有先进后出,后进先出的特点

链表

概念

链表是一种 物理存储结构上非连续 、非顺序的存储结构,数据元素的 逻辑顺序 是通过链表中的 指针链 接 次序实现的 。
在这里插入图片描述

创建链表
const a = { val:'a' };
const b = { val:'b' };
const c = { val:'c' };
a.next = b;
b.next = c;
链表插入&删除
//插入
const e ={val:'e'};
b.next = e;
e.next = c;
//删除e
b.next = c;

二叉数

概念

一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。
特点
1,每个结点最多有两棵子树,即二叉树不存在度大于2的结点。
2,二叉树的子树有左右之分,其子树的次序不能颠倒。
在这里插入图片描述

二叉树的存储结构

1.顺序存储
顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,因为不是完全二叉树会有空间的浪费。而现实中使用中只有堆才会使用数组来存储。二叉树顺序存储在物理上是一个数组,在逻辑上是一颗二叉树。
2.链式存储
二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeArray 是 Android 中的一个特殊的资源类型,用于在 XML 中声明自定义 View 的属性。使用 TypeArray 可以方便地在 XML 布局中指定 View 的属性,而不需要在 Java 代码中进行硬编码。 使用 TypeArray 的步骤如下: 1. 在 res/values/attrs.xml 文件中定义自定义 View 的属性。 ```xml <resources> <declare-styleable name="MyCustomView"> <attr name="customAttr1" format="integer" /> <attr name="customAttr2" format="string" /> <attr name="customAttr3" format="boolean" /> </declare-styleable> </resources> ``` 2. 在自定义 View 的构造函数中获取 TypedArray 对象,并从中获取属性值。 ```java public class MyCustomView extends View { private int customAttr1; private String customAttr2; private boolean customAttr3; public MyCustomView(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyCustomView); customAttr1 = a.getInt(R.styleable.MyCustomView_customAttr1, 0); customAttr2 = a.getString(R.styleable.MyCustomView_customAttr2); customAttr3 = a.getBoolean(R.styleable.MyCustomView_customAttr3, false); a.recycle(); } } ``` 在上面的代码中,`context.obtainStyledAttributes(attrs, R.styleable.MyCustomView)` 用于获取 TypedArray 对象,`R.styleable.MyCustomView` 是在 attrs.xml 文件中定义的自定义属性集合,`a.getInt()`、`a.getString()`、`a.getBoolean()` 用于从 TypedArray 对象中获取属性值,最后需要调用 `a.recycle()` 来回收 TypedArray 对象。 3. 在 XML 布局中使用自定义 View,并设置属性值。 ```xml <com.example.MyCustomView android:layout_width="match_parent" android:layout_height="wrap_content" app:customAttr1="123" app:customAttr2="hello" app:customAttr3="true" /> ``` 在上面的代码中,`app:customAttr1`、`app:customAttr2`、`app:customAttr3` 是在 attrs.xml 文件中定义的自定义属性名,可以在 XML 布局中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值