Rumah hujung hadapan web tutorial js 在JS中如何实现两个队列表示一个栈

在JS中如何实现两个队列表示一个栈

Jun 20, 2018 pm 06:10 PM
js timbunan beratur

这篇文章主要介绍了JS实现利用两个队列表示一个栈的方法,简单分析了使用两个队列表示一个栈的原理,并结合具体实例分析了javascript相关操作技巧,需要的朋友可以参考下

本文实例讲述了JS实现利用两个队列表示一个栈的方法。分享给大家供大家参考,具体如下:

先看原理图:

理清楚思路,再动笔写:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

<!DOCTYPE html>

<html>

<head>

  <title>2 Queue</title>

  <meta charset="utf-8"/>

  <script type="text/javascript">

  var arr1 = [];

  var arr2 = [];

    function Queue(arr){

      this.push = function(element){

        return arr.push(element);

      }

      this.pop = function(){

        return arr.shift();

      }

      this.size = function(){

        return arr.length;

      }

      this.display = function(){

        console.log(arr);

      }

    }

    var queue1 = new Queue(arr1);

    queue1.push(1);

    queue1.push(4);

    queue1.push(5);

    queue1.push(7);

    queue1.display();

    var queue2 = new Queue(arr2);

    //利用两个队列实现栈。放在数组中打印

    var res = [], k = 0;

    while(queue1.size()!=0){

      var len = queue1.size();

      for(var i = 0; i<len-1; i++){

        queue2.push(queue1.pop());

      }

      // 打印queue1最后一个元素,并出队

      res[k] = queue1.pop();

      ++k;

      // 队列2的元素放置到队列1中

      for(var i = 0; i<len-1; i++){

        queue1.push(queue2.pop());

      }

    }

    console.log("res:" + res);

    //利用两个队列实现栈。单个弹出

    while(queue1.size()!=0){

      var len = queue1.size();

      for(var i = 0; i<len-1; i++){

        queue2.push(queue1.pop());

      }

      // 打印queue1最后一个元素,并出队

      console.log(queue1.pop());

      // 队列2的元素放置到队列1中

      for(var i = 0; i<len-1; i++){

        queue1.push(queue2.pop());

      }

    }

  </script>

</head>

<body>

</body>

</html>

Salin selepas log masuk

运行结果:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

使用async-validator如何编写Form组件(详细教程)

使用微信小程序如何实现图片上传功能

使用vue如何实现CSS过渡效果

在js中如何实现上传并压缩图片功能(详细教程)

Atas ialah kandungan terperinci 在JS中如何实现两个队列表示一个栈. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Apr 03, 2024 am 11:55 AM

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik

Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS Dec 17, 2023 pm 06:55 PM

Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS

Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Dec 18, 2023 pm 03:39 PM

Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok

Cara membuat carta candlestick saham menggunakan PHP dan JS Cara membuat carta candlestick saham menggunakan PHP dan JS Dec 17, 2023 am 08:08 AM

Cara membuat carta candlestick saham menggunakan PHP dan JS

Apakah perbezaan antara java heap dan stack Apakah perbezaan antara java heap dan stack Dec 25, 2023 pm 05:29 PM

Apakah perbezaan antara java heap dan stack

Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Jan 09, 2024 pm 05:02 PM

Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue

Hubungan antara js dan vue Hubungan antara js dan vue Mar 11, 2024 pm 05:21 PM

Hubungan antara js dan vue

Cara menggunakan Peta JS dan Baidu untuk melaksanakan fungsi geokod peta Cara menggunakan Peta JS dan Baidu untuk melaksanakan fungsi geokod peta Nov 21, 2023 pm 06:30 PM

Cara menggunakan Peta JS dan Baidu untuk melaksanakan fungsi geokod peta

See all articles