/*
*這部分檔案實現我們之前所使用的stack類
*它主要的原理為 後進先出(lifo)
*/#ifndef _stack_h
#define _stack_h
/* *型別: stack*此類建立乙個稱為堆疊的線性結構,其中僅從一端新增和刪除值。
*這個規定產生了乙個(lifo)的行為,它是堆疊的定義特徵。
*基本堆疊操作是push(新增元素到頂部)和pop(把元素從頂部刪除)。
*/template
class stack;
#include
"stackimpl.cpp"
//將實現檔案包含進來
#endif
private:
/*棧的鍊錶結構*/
struct cell;
/*例項化變數*/
cell *stack; /*定義乙個cell型別的指標,指向棧頂*/
int count; /*用返回棧中的元素個數*/
/* make it illegal to copy stacks */
stack(const stack & value)
const stack & operator=(const stack & rhs)
/*
*這個檔案用於實現stack標頭檔案中定義的一系列的方法
*/#ifdef _stack_h
#include "error.h"
/*建構函式*/
template
stack::stack()
/*析構函式*/
template
stack::~stack()
/*返回棧的大小*/
template
int stack::size()
/*判斷棧是否為空*/
template
bool stack::isempty()
/*清空棧*/
template
void stack::clear()
}/*入棧,邊畫圖邊寫**理解*/
template
void stack::push(valuetype element)
/*出棧操作*/
template
valuetype stack::pop()
/*檢視棧頂元素*/
template
valuetype stack::peek()
#endif
#include
#include "stack.h"
using
namespace
std;
int main()
cout
<< "棧頂元素為:"
<< mystack.peek() << endl;
cout
<< "棧中共有"
<< mystack.size() << "個元素"
<< endl;
int n = mystack.pop();
cout
<< "出棧的元素為:"
<< n << endl;
cout
<< "此時棧頂的元素為:"
<< mystack.peek() << endl;
mystack.push(100);
cout
<< "壓入100後,此時的棧頂為:"
<< mystack.peek() << endl;
mystack.clear();
cout
<< "清空棧後,棧中的元素個數為:"
資料結構鏈棧實現
如題 這是一套完整的可執行的 需要讀者有一定的基礎去閱讀 語言是用c語言實現 在c 環境中編寫 在c 中可直接執行 在c語言中需要改部分標頭檔案和輸出語句 標頭檔案 這要是 的宣告部分 ifndef head define head include using namespace std typed...
資料結構 線性結構 棧
棧 和佇列相反的作用,越是先存入的資料就得越到後才能取出,根據這個特性可以用陣列或鍊錶模擬出棧。陣列模擬棧 新增資料正常順序,每天加乙個數棧頂加一次,彈棧的時候將棧頂指標的數彈出即可,遍歷棧陣列時是從棧頂開始迴圈。1 class arraystack9 判斷棧是否已滿 10public boolea...
資料結構之線性結構 棧結構(靜態棧的實現)
1,棧的定義 所謂 棧 就是一種可以實現後進先出的資料儲存結構。舉個栗子 我們生活中常見的與棧結構很類似的就是我們裝羽毛球的球筒。我們買羽毛球是通常是要買上一筒羽毛球備用。棧結構有兩種主要的操作,乙個入棧,另乙個是出棧。羽毛球入筒的過程就好比是入棧,羽毛球出筒的過程就好比是出棧。這兩個過程模擬得非常...