队列结构
数据结构之队列结构基本定义队列结构是一种受限的数据结构,它是一种线性表,符合先进先出的特点(FIFO—-> First In First Out)。受限之处是因为他只允许在前端进行删除操作,在后端进行插入操作。比如说我们日常生活中的排队,有限排队的人优先处理。
在JavaScript中实现队列结构实现队列结构可以通过数组实现,也可以基于链表实现,采用数组实现效率不高,因为我们删除了第一个元素,会导致后面的所有元素都要往前面移一位,但是还没有学习到链表,于是我们就采取熟悉的数组实现。
队列的常见操作
enqueue:向队列尾部添加一个或多个项
dequeue:移除队列第一个项,也是需要删除的哪一项,并且返回被删除的元素
front:返回队列的第一个元素,队列不做任何操作,单纯的看一眼会被移除的元素
isEmpty:如果队列为空则返回true,反之返回false
size:返回队列中的元素个数
toString:将队列的元素转换为字符串
利用数组实现队列结构1234567891011121314151617181920212223242526272829class Queue ...
栈结构
数据结构之栈结构基本定义:只允许在有序的线性资料集合的一端(称为堆栈顶端,top)进行加入数据(push)和移除数据(pop)的运算。它有两种基本操作:推入或者弹出,遵循着先入后出,后入先出的特点。
在javascript中实现栈结构在javascript中实现栈结构,最常见的就是借助数组来实现,数组中提供了push和pop方法,可以很轻松的实现栈结构的特点。
栈结构的常用操作
push:添加一个新元素到栈顶
pop:移除栈顶的元素,同时返回被移除的元素
peek:返回栈顶的元素,不对栈做任何修改,单纯的看一眼栈顶是谁
isEmpty:如果栈里没有元素就返回true,反之返回false
size:返回栈里元素的个数
toString:将栈结构的内容以字符串的形式返回
利用数组实现栈结构1234567891011121314151617181920212223242526272829class Stack { constructor() { this.items = []; } push(item) { this.i ...
React的setState详解
为什么需要setState方法 首先我们需要知道,React不同于Vue,他并没有实现Vue的响应式原理,我们需要手动的调用setState方法修改数据通知React进行更新界面
setState方法数据的合并首先需要知道,setState在执行的时候,并不是覆盖原来的state,而是合并,看下面例子
1234567891011121314151617181920212223242526import React, { Component } from "react";export default class App extends Component { constructor(props) { super(props); this.state = { name:'coderwei', message: "13", }; } change() { this.setState( ...






