棧的實現
包括:動態擴容、刪除、遍歷、插入元素?
模板類 整就完事了~就沒用stl了 ?
//棧
//include包括的標頭檔案就是常見的標頭檔案 就不再新增了
template
<
typename t>
class
stack;~
stack()
};void
pushelem
( t a)
; t popelem()
;void
showelem()
;bool
isempty()
;void
clearstack()
;void
destroystack()
; t gettopelem()
; t getlength()
;private
: t * top;
t * base;
int maxsize;};
template
<
typename t>
void stack
::pushelem
( t a)
this
->top = currpoint;}*
this
->top =a;
//必須解引用
++this
->top;
}template
<
typename t>
t stack
::popelem()
--top;
return
*(top);}
template
<
typename t>
void stack
::showelem()
t *currpoint=
null
; currpoint =
this
->top;
while
(currpoint!=
this
->base)
cout << endl;
}template
<
typename t>
bool stack
::isempty()
template
<
typename t>
void stack
::clearstack()
template
<
typename t>
void stack
::destroystack()
delete
this
->base;
}template
<
typename t>
t stack
::gettopelem()
t stack
::getlength()
void
test09()
intmain()
//-------------------------------------------以下為小測試
//以棧來完成2進製到十進位制的轉換函式:
intgetnumber
(int a)
intbinary2ten()
int poptimes =0;
int len = n.
getlength()
;int number =0;
while
(poptimes != len)
cout <<
"轉換後的結果為:"
<< number << endl;
return number;
}int
main()
STL的簡單實現 一 棧
目前暫不支援動態大小,支援指定大小與預設大小,主要包含元素的插入,棧頂的訪問與彈出,首尾位址的獲取 模擬棧的基本實現 ifndef stack define stack include using namespace std include include using namespace std t...
快速排序的非遞迴實現(棧)
快速排序非遞迴基本思想 將每一段的頭和尾放在棧中,在逐步出棧。首先先建乙個棧或者呼叫stl 標準模板庫 中 棧函式。在標頭檔案中。include include include using namespace std define size 20 typedef int datatype typed...
C 基礎 STL之棧stack
這篇文章介紹一下stl中stack的基本使用方法。棧也是最為常見的一種資料結構,佇列中的元素滿足filo 先進後出 include using namespace std stack函式名 用途功能說明 時間複雜度 size 查詢遍歷 獲取元素個數 o 1 top 查詢遍歷 獲取指向第乙個元素的迭代...