最近在看數據結構,隊列在數據結構中是個重要的元素。
定義:數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。
隊列主要分為普通隊列和環形隊列,環形隊列比普通隊列的使用效率更高(普通隊列容易造成內存的浪費,時間效率也會降低,主要體現在隊列的刪除操作上)
下面用java來實現隊列,僅供參考

package demo; //環形隊列 public class QueueDemo { //創建隊列 public QueueDemo(int num){ m_iQueueCapacity=num; m_pQueue=new Object[num]; clearQueue(); } //銷毀隊列 public void destryQueue(){ m_pQueue=null; } //清空隊列 public void clearQueue(){ m_iHead=0; m_iTail=0; m_iQueue=0; } //判斷隊列是否為空 public boolean isEmpotyQueue(){ if(m_iQueue==0){ return true; } return false; } //判斷隊列是否已滿 public boolean queueFull(){ if(m_iQueue==m_iQueueCapacity){ return true; } return false; } //隊列長度 public int queueLength(){ return m_iQueue; } //新增元素 public boolean EnQueue(Object element){ if(queueFull()){ return false; } m_pQueue[m_iTail]=element; m_iTail++; m_iTail=m_iTail%m_iQueueCapacity; m_iQueue++; return true; } //刪除元素 public Object DeQueue(){ if(isEmpotyQueue()){ return null; } Object element=m_pQueue[m_iHead]; m_iHead++; m_iHead=m_iHead%m_iQueueCapacity; m_iQueue--; return element; } //遍歷隊列 public void queueTraverse(){ for(int i=m_iHead;i<m_iQueue+m_iHead;i++){ System.out.println(m_pQueue[i%m_iQueueCapacity]); } } private Object[] m_pQueue;//隊列 private int m_iQueue;//隊列元素個數 private int m_iQueueCapacity;//隊列數組容量 private int m_iHead;//對頭 private int m_iTail;//隊尾 public static void main(String[] args){ QueueDemo demo=new QueueDemo(5); demo.EnQueue("aaa"); demo.EnQueue("bbb"); demo.EnQueue("ccc"); demo.EnQueue("ddd"); demo.DeQueue(); demo.DeQueue(); demo.EnQueue("ffff"); demo.EnQueue("vvvv"); demo.queueTraverse(); } }