當前位置:編程學習大全網 - 遊戲軟體 - 堆和棧有什麽區別

堆和棧有什麽區別

堆是壹種經過排序的樹形數據結構,每個結點都有壹個值,堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是壹個堆。由於堆的這個特性,常用來實現優先隊列,堆的存取是隨意。

棧是後進先出性質的數據結構。

此外,

棧:

在函數調用時,第壹個進棧的是主函數中函數調用後的下壹條指令(函數調用語句的下壹條可執行語句)的地址,然後是函數的各個參數,在大多數的C編譯器中,參數是由右往左入棧的,然後是函數中的局部變量。註意靜態變量是不入棧的。

當本次函數調用結束後,局部變量先出棧,然後是參數,最後棧頂指針指向最開始存的地址,也就是主函數中的下壹條指令,程序由該點繼續運行。

堆:壹般是在堆的頭部用壹個字節存放堆的大小。堆中的具體內容有程序員安排。

  • 上一篇:2024巴黎奧運會倒計時2024年法國巴黎奧運會開幕時間-天氣網萬年歷
  • 下一篇:小夥壹覺醒來變成了妹子是什麽電影
  • copyright 2024編程學習大全網