棧方法 LIFO 隊方法 FIFO

2022-07-24 09:54:07 字數 982 閱讀 7375

1、棧方法

lifo(last-in-first-out,後進先出)最新新增最早被移除。棧中項的插入(叫做推入)和移除(叫做彈出)只發生在乙個位置---桟的頂部。

模擬:push()方式可以接收任意數量引數,它逐個新增到陣列末尾,並修改陣列長度。pop()方法從陣列末端最後一項,並減少length

var colors = new array(); //建立乙個陣列

var count = colors.push('red','green'); // count -> 2 colors -> ["red", "green"]

count = colors.push('black'); // count -> 3 colors -> ["red", "green","black"]

var item = colors.pop(); //"black" length -> 2

2、隊方法

fifo(first-in-first-out,先進先出)

佇列在列表末端新增項,從列表的前端移除項

模擬:push()方式可以接收任意數量引數,它逐個新增到陣列末尾,並修改陣列長度。shift()移除陣列第一項並返回該項,並length-1

var colors = new array(); //建立乙個陣列 

var count = colors.push("red", "green"); //推入兩項 //count -> 2

count = colors.push("black"); //推入另一項 //count -> 3

var item = colors.shift(); //取得第一項 // item -> red colors -> ["green", "black"]

反向佇列

unshift()與shift() 用途相反,在陣列前新增任意項陣列,unshift()與pop()同時使用方向佇列模擬

unshift() 返回陣列新增後長度

非同步FIFO的設計方法

對於非同步fifo而言,資料是由某乙個時鐘域的控制訊號寫入fifo,而由另乙個時鐘域的控制訊號將資料讀出fifo。也就是說,讀寫指標的變化動作是由不同的時鐘產生的。因此,對fifo空或滿的判斷是跨時鐘域的。如何根據非同步的指標訊號對fifo的滿狀態或空狀態進行正確的判斷是本文研究的重點。此外,設計過...

FPGA跨時鐘域處理方法FIFO

1 本節目錄 2 本節引言 3 fpga簡介 4 fpga跨時鐘域處理方法fifo 5 結束語。不積跬步,無以至千里 不積小流,無以成江海。就是說 不積累一步半步的行程,就沒有辦法達到千里之遠 不積累細小的流水,就沒有辦法匯成江河大海。fpga field programmable gate arr...

FIFO最小深度計算方法

在實際工作中使用fifo,如何計算fifo的深度是乙個關鍵問題。本文以例項的形似,展示了在資料轉換時,fifo深度的計算方法。例1,已知某a d轉換的取樣率為50mhz,而fpga工作在40mhz時鐘下,現在要處理10萬個資料,需要的緩衝fifo深度是多少?答 1 採集10萬個資料的總時間為 tto...