C 實現的棧 非STL

2021-10-09 04:31:08 字數 1951 閱讀 4645

棧的實現

包括:動態擴容、刪除、遍歷、插入元素?

模板類 整就完事了~就沒用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 查詢遍歷 獲取指向第乙個元素的迭代...