2011-09-02 126 views
1

我在學習data structures and algorithms。我的老師告訴我的情況如下:堆棧函數的實現在哪裏?

推():推插在堆棧

流行的元素():彈出刪除從堆棧中)的最後一個插入的元素

尺寸(:返回堆棧中的元素的數量

的isEmpty():返回一個布爾值,指示如果堆棧是空的

頂部():返回堆棧的頂部元件,而不刪除它;如果堆棧爲空,則返回錯誤。

哪裏有這些功能的實現?這些是C++的built-in functions

回答

5

你的老師解釋適用於一般堆棧數據結構的功能。這些功能在任何地方都沒有實現,特別是因爲你的老師沒有談論任何特定的堆棧。你的老師甚至沒有談論C++。現在你只是瞭解什麼是:它們是可以用任何語言實現的抽象數據結構。他們是後進先出的容器。後來在你的過程中,您將瞭解樹木隊列名單,以及其他各種抽象的數據結構。在稍後的課程中,您的老師可能會演示如何實現上面列出的功能。演示甚至可能在C++中。

+0

我猜你對老師的意圖是對的,但他的問題明確地是關於C++的。 – mydogisbox

+0

非常正確。非常感謝。 –

5

這些是std::stack的成員函數,它是C++標準庫中的一個容器類(模板)。

您可以在<stack>頭文件中找到實現。

[注意它的empty(),不isempty(),雖然]

1

的std ::棧 - 這是標準庫,這爲c的「一部分」 ++,雖然它不是一個「內置函數」

0

要使用stl,您必須將全部或部分文件包含在文件中,或者每次使用stl時都要引用stl。

這裏是對STL的實現的鏈接: http://www.sgi.com/tech/stl/download.html

+0

儘管「標準」模板庫「適用於C++,絕對不存在」stl ::「。 – Cubbi

+0

糟糕。讓我的語言混淆起來。 – mydogisbox

0

如果你正在試圖找出如何創建自己的模板類和函數,見

如果你想了解一個堆棧可以如何實現,以及什麼堆棧,讀

如果您想了解更多關於C++ STL容器,閱讀這些:

希望這些引用會幫助你問一個更具體的問題或要求澄清你還不明白的東西......