1. 程式人生 > >詳解>>堆,棧,堆疊,佇列

詳解>>堆,棧,堆疊,佇列

1.堆

堆就是一棵完全二叉樹

具有以下特性

  • 在程式執行時分配記憶體(動態分配記憶體)
  • 應用程式在執行時向作業系統申請空間

2.棧(堆疊)

  • 運算受限制的單鏈表,只能從一個方向操作
  • 像是一個桶,只能從開口方向放入或者拿出資料,開口方向為棧頂,不開口方向棧底
  • 有兩種操作PUSH(入棧) POP(出棧)
  1. 入棧,放入棧頂元素,棧大小加一
  2. 出棧,取出棧頂元素,棧大小減一

3.佇列 

  • 特殊的線性表,只能從表頭刪除,表尾插入
  • 建立順序表必須靜態分配或者動態申請一塊連續空間,一個指向對頭,一個指向隊尾(指向下一個入隊元素存放地址)