我正在重寫有關凸包和Graham Scan的實現方法,並引起了我的注意,即每個人都使用堆棧。所以我想問一問爲什麼在算法中使用堆棧,使用堆棧有什麼好處?爲什麼在凸包中堆積
3
A
回答
0
在建造船體時的格雷厄姆掃描中,如果點不與下一個考慮的點形成左轉,則需要回溯,因此以前的點需要重新考慮爲船體的有效點,因此我們使用堆棧來獲取它們按照上次訪問的順序進行重新驗證。雖然它不是強制使用堆棧,但也可以使用簡單的數組來執行相同的操作。
3
這裏的棧可以被認爲是支持push
,pop
和empty
操作的抽象數據結構。如果您閱讀Graham Scan算法的描述,您會發現這些正是算法使用的操作,所以我實在看不出什麼可以替代堆棧 - 這可能會是一種不同的算法。
什麼樣的數據結構被用來在堆棧中支持/實現這些操作(即以OO術語來實現堆棧接口的類)可以自由決定。通常使用一個數組,但對於一些應用程序,鏈接列表也許有意義。
相關問題
- 1. 爲2d凸殼選擇積分
- 2. 在凸包
- 3. ggplot2中的堆疊面積圖返回爲堆積線
- 4. 爲什麼我的凸包外圍計算不起作用?
- 5. 在ggvis中繪製堆積面積圖的正確方法是什麼?
- 6. 在java中合併凸包
- 7. fillColor在面積圖中堆積
- 8. 爲什麼我的D3堆疊面積圖翻轉?
- 9. 在AChartEngine中將堆積條形圖轉換爲堆積100條形圖
- 10. highcharts堆積面積
- 11. 爲什麼積分緩慢
- 12. 在Python中調試堆積
- 13. 爲什麼在堆棧中零片段
- 14. 爲什麼對象存儲在堆中
- 15. 爲什麼在計算幾個凸包的時候會出現Qhull錯誤?
- 16. 爲什麼SKEmitterNode中斷累積幀?
- 17. 堆棧爲空...爲什麼?
- 18. 簡化凸包
- 19. NVD3堆積面積圖
- 20. R中的灰度堆積面積圖
- 21. 堆積面積圖中Plot.ly和R
- 22. 堆積面積直方圖中的R
- 23. D3.js中的堆積面積圖
- 24. 堆積面積圖和在matplotlib
- 25. 什麼在堆棧中?
- 26. .NET中的凸包生成
- 27. 堆積溢出
- 28. HighCharts堆積柱
- 29. 堆積故障
- 30. Bootstrap堆積列