1. 程式人生 > >JS裡的居民們4-陣列((堆)佇列

JS裡的居民們4-陣列((堆)佇列

編碼1(隊頭在最右)

練習如何使用陣列來實現佇列,綜合考慮使用陣列的 push,pop,shift,unshift操作

基於程式碼,實現如按鈕中描述的功能:

  • 實現如閱讀材料中,佇列的相關入隊、出隊、獲取隊頭、判空的操作
  • 隊頭對應陣列中最後一個元素
  • 入隊和出隊操作後,需要在 id 為 queue-cont 的 p 標籤中更新顯示佇列中的內容,隊頭在最右側,中間用 -> 連線(練習使用陣列的join方法)
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset
="utf-8" /> 5 <title>JS裡的居民們4-陣列((堆)佇列-隊頭在右)</title> 6 </head> 7 <body> 8 <input id="queue-input" type="text"> 9 <p id="queue-cont">佇列內容:apple-&gt;pear</p> 10 <button id="in-btn">入隊</button> 11 <button id="out-btn"
>出隊</button> 12 <button id="font-btn">列印隊頭元素內容</button> 13 <button id="empty-btn">判斷佇列是否為空</button> 14 <script> 15 var queue = ["apple", "pear"]; 16 var buttons=document.getElementsByTagName("button"); 17 var txt=document.getElementById("queue-input
"); 18 var queuecont=document.getElementById("queue-cont"); 19 buttons[0].addEventListener("click",function(){ 20 queue.unshift(txt.value); 21 queuecont.innerHTML="佇列內容:"+queue.join("-&gt;"); 22 console.log(queue); 23 }) 24 buttons[1].addEventListener("click",function(){ 25 queue.pop(); 26 queuecont.innerHTML="佇列內容:"+queue.join("-&gt;"); 27 console.log(queue); 28 }) 29 buttons[2].addEventListener("click",function(){ 30 var q0=queue[queue.length-1]; 31 queuecont.innerHTML="佇列內容:"+q0; 32 console.log(q0); 33 }) 34 buttons[3].addEventListener("click",function(){ 35 if(queue.length==0){ 36 console.log(""); 37 queuecont.innerHTML="佇列內容:"+""; 38 } 39 else{ 40 console.log("不為空"); 41 queuecont.innerHTML="佇列內容:"+"不為空"; 42 } 43 }) 44 </script> 45 </body> 46 </html>

編碼2(隊頭在最左)

對上面練習稍作小調整:

基於程式碼,實現如按鈕中描述的功能:

  • 實現如閱讀材料中,佇列的相關入隊、出隊、獲取隊頭、判空的操作
    • 隊頭對應陣列中第一個元素
  • 入隊和出隊操作後,需要在 id 為 queue-cont 的 p 標籤中更新顯示佇列中的內容,隊頭在最左側,中間用 <- 連線(練習使用陣列的join方法)
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8" />
 5     <title>JS裡的居民們5-陣列((堆)佇列-隊頭在左)</title>
 6 </head>
 7 <body>
 8     <input id="queue-input" type="text">
 9     <p id="queue-cont">佇列內容:apple-&gt;pear</p>    
10     <button id="in-btn">入隊</button>
11     <button id="out-btn">出隊</button>
12     <button id="font-btn">列印隊頭元素內容</button>
13     <button id="empty-btn">判斷佇列是否為空</button>
14     <script>
15     //-&gt;   為->
16     //&lt;-   為<-
17     var queue = ["apple", "pear"];
18     var buttons=document.getElementsByTagName("button");
19     var txt=document.getElementById("queue-input");
20     var queuecont=document.getElementById("queue-cont");
21     buttons[0].addEventListener("click",function(){
22         queue.push(txt.value);
23         queuecont.innerHTML="佇列內容:"+queue.join("&lt;-");
24         console.log(queue);
25     })
26     buttons[1].addEventListener("click",function(){
27         queue.shift();
28         queuecont.innerHTML="佇列內容:"+queue.join("&lt;-");
29         console.log(queue);
30     })
31     buttons[2].addEventListener("click",function(){
32         var q0=queue[0];
33         queuecont.innerHTML="佇列內容:"+q0;
34         console.log(q0);
35     })
36     buttons[3].addEventListener("click",function(){
37       
38         if(queue.length==0){
39             console.log("");
40             queuecont.innerHTML="佇列內容:"+"";
41         }
42         else{
43             console.log("不為空");
44             queuecont.innerHTML="佇列內容:"+"不為空";
45         }
46     })
47     </script>
48 </body>
49 </html>