js數據結構與算法--棧和隊列

1.棧(stack)

棧(stack)又名堆棧,它是一種運算受限的線性表。其限制是僅容許在表的一端進行插入和刪除運算。這一端被稱爲棧頂,相對地,把另外一端稱爲棧底。向一個棧插入新元素又稱做進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成爲新的棧頂元素;從一個棧刪除元素又稱做出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成爲新的棧頂元素。(後入先出)
入棧使用 push() 方法,出棧使用 pop() 方法前端

clipboard.png

<script>
  function sum(num){
     let arr1=[]
       while(num>0){
           let num1=num--
           arr1.push(num1)
           console.log("入棧",num1)
           
       }
       console.log(arr1)
       while(arr1.length>0){
           console.log("出棧",arr1.pop())
           console.log("出站",arr1)
       }
 }
   sum(7)    
    </script>

clipboard.png

2.隊列

隊列是一種特殊的線性表,特殊之處在於它只容許在表的前端(front)進行刪除操做,而在表的後端(rear)進行插入操做,和棧同樣,隊列是一種操做受限制的線性表。進行插入操做的端稱爲隊尾,進行刪除操做的端稱爲隊頭。
先進先出後端

clipboard.png

<script>
      var food=new Array();  
food.unshift("1","2","3","4");  
alert(food);  
while(food.length>0){  
 food.shift();  
     alert(food);  
 }
    </script>
相關文章
相關標籤/搜索