在C 實現棧的定義

2021-05-23 18:00:07 字數 1867 閱讀 3407

#ifndef _stack_h

#define _stack_h

#pragma once

template< class t >

class stack

;//建構函式

stack( const stack& ) ;//拷貝建構函式

~stack( void ) ;//析構函式

stack& operator = ( const stack& ) ;//過載賦值運算子

int size( void ) const ;//返回棧中元素數目

int capacity( void ) const ;//返回當前棧的容量

bool isempty( void ) const ;//判斷棧是否為空棧

t& top( void ) const ;//返回棧頂元素

void push( const t& ) ;//將元素壓入棧中,當元素數目超過棧的容量時重建棧

void pop( void ) ;//彈出棧頂元素

protected:

int size ;//棧中元素數目

int capacity ;//棧的容量

void expand( void ) ;//擴充棧

void decrease( void ) ;//壓縮棧

private:

t* _ ;//儲存棧中元素的陣列

} ;

template< class t >

stack< t >::stack( const stack< t > & s ) : _( new t[ capacity ] ) , size( s.size ) , capacity( s.capacity )

template< class t >

stack< t >::~stack( void )

template< class t >

stack< t >& stack< t >::operator = ( const stack& s )

template< class t >

int stack< t >::size( void ) const

template< class t >

int stack< t >::capacity( void ) const

template< class t >

bool stack< t >::isempty( void ) const

template< class t >

t& stack< t >::top( void ) const

template< class t >

void stack< t >::pop( void )

template< class t >

void stack< t >::push( const t& obj )

template< class t >

void stack< t >::expand( void )

template< class t >

void stack< t >::decrease( void )

#endif

7 棧的定義及實現

一 棧的定義 棧是一種特殊的線性表 棧通常有兩種實現方式 順序結構實現和鏈式結構實現 性質 後進先出 lifo last in first out 二 棧的應用實戰 編譯器符號成對檢測 當需要檢測成對出現但又互不相鄰的事物時,使用棧的 後進先出 特性 演算法思路 從第乙個字元開始掃瞄 當遇見普通字元...

陣列棧的定義與實現

說明1 以下 在vs2017中編譯通過,讀者使用時可以直接將標頭檔案 sqstack.h 原始檔 sqstack.c 主檔案 main.c 中的內容直接拷貝過去,即可編譯執行!說明2 圖示 標頭檔案 sqstack.h 函式的宣告 ifndef sqstack h define sqstack h ...

鏈式棧的定義與實現

說明1 以下 在vs2017中編譯通過,讀者使用時可以直接將標頭檔案 linkstack.h 原始檔 linkstack.c 主檔案 main.c 中的內容直接拷貝過去,即可編譯執行!說明2 圖示 標頭檔案 linkstack.h 函式的宣告 pragma once include include ...