目的:ES6标准下的JS数据结构的一些实现代码。(作为记录和启发)

内容:队列和双端队列。(未完成,待继续)

所有源码在我的Github上(如果觉得不错记得给星鼓励我哦):ES6的JavaScript数据结构实现之队列 

一、基础数据结构

1、队列(FIFO)

 1 class Queue{
 2 constructor(){
 3 this.count = 0;
 4 this.lowestCount = 0;
 5 this.items ={};
 6 }
 7 
 8 
 9 enqueue(element) {
10 this.items[this.count] = element;
11 this.count++;
12 }
13 
14 dequeue() {
15 if (this.isEmpty()) {
16 return undefined;
17 }
18 const result = this.items[this.lowestCount];
19 delete this.items[this.lowestCount];
20 this.lowestCount++;
21 return result;
22 }
23 
24 peek() {
25 if (this.isEmpty()){
26 return undefined;
27 }
28 return this.items[this.lowestCount];
29 }
30 
31 isEmpty() {
32 return this.size() === 0;
33 }
34 size() {
35 return this.count - this.lowestCount;
36 }
37 clear(){
38 this.items = {};
39 this.count = 0;
40 this.lowestCount = 0;
41 }
42 toString(){
43 if (this.isEmpty()){
44 return '';
45 }
46 let objString = `${this.items[this.lowestCount]}`
47 for (let i= this.lowestCount + 1; i < this.count;i++){
48 objString = `${objString},${this.items[i]}`;
49 }
50 return objString;
51 }
52 }
53 
54 const queue = new Queue();
55 console.log(queue.isEmpty());
56 queue.enqueue('a');
57 queue.enqueue('b');
58 queue.enqueue('c');
59 console.log(queue);
60 console.log(queue.size());
61 console.log(queue.toString());
62 queue.dequeue();
63 console.log(queue);
64 console.log(queue.peek());
65 queue.clear();
66 console.log(queue);
Queue

相关文章:

  • 2022-12-23
  • 2021-09-11
  • 2022-01-07
  • 2021-08-23
  • 2022-12-23
  • 2021-06-27
猜你喜欢
  • 2021-06-10
  • 2022-12-23
  • 2021-10-20
  • 2022-12-23
  • 2022-01-28
  • 2021-11-18
相关资源
相似解决方案