C 實現順序棧

2021-10-12 22:59:09 字數 1872 閱讀 2734

版本一:

int型別,只有建構函式和析構函式

class

sstack

~sstack()

void

push

(int x)

_p[_size++

]=x;

}int

pop(

)return _p[

--_size];}

inttop()

return _p[_size-1]

;}bool

empty()

intsize()

private

:int

*_p;

int _size;

int _cap;

void

resize()

delete

_p;_p=p1;

_cap*=2

;}};

intmian()

版本二:拷貝建構函式+拷貝賦值建構函式

class

sstack

~sstack()

//拷貝構造和拷貝賦值

sstack

(const sstack &ss)

} sstack&

operator=(

const sstack&ss)

delete

_p;

_p=newint

[ss._cap]

; _cap=ss._cap;

_size=ss._size;

for(

int i=

0;i<_size;i++

)return

*this

;//拷貝賦值運算子返回的時候,return的時候,會return *this 。

}void

push

(int x)

_p[_size++

]=x;

}int

pop(

)return _p[

--_size];}

inttop()

return _p[_size-1]

;}bool

empty()

intsize()

private

:int

*_p;

int _size;

int _cap;

void

resize()

delete

_p;_p=p1;

_cap*=2

;}};

1.29練習

#include

using

namespace std;

class

sstack

~sstack()

sstack

(const sstack&rhs)

} sstack&

operator=(

const sstack&rhs)

return

*this;}

inttop()

intpush

(int x)

_p[_siz++

]=x;

}int

pop(

)int

size()

private

:int _cap;

int _siz;

int* _p;

void

resize()

delete

_p;_p=p;}}

;int

main()

C 實現順序棧

vs2013下實現 include include using namespace std const int stacksize 20 templateclass stack 建構函式,初始化乙個空棧 stack t a,int n 含參建構函式 stack const stack otherst...

C 順序棧實現

模板類檔案位置 宣告和定義均要在標頭檔案中進行,否則會出現鏈結錯誤,不可只在標頭檔案宣告,在cpp檔案中定義 環境vs2019 模板類中的友元函式宣告 在類內宣告友元函式時,需要在上面加上 模板頭 template,否則會報錯,具體原因 建構函式中使用return 不影響結果,貌似是這樣,在我這個例...

順序棧之C 實現

順序棧就是用順序表 陣列 實現的棧。其組織形式如下圖所示 下面介紹下我用c 實現的順序棧,在vc6下除錯通過。不足之處還請指正。1 檔案組織 2 ss.h棧類的宣告及巨集的定義 ifndef ss h define ss h typedef int datatype define maxsize 1...