c 簡單的棧

2021-07-29 12:29:31 字數 2108 閱讀 9842

stack.h中宣告了stack類,在stack.cpp中進行了定義

stack的私有成員包括data指標,指向棧,tot指的是開闢總的空間,pointer指向類裡面元素的位置

stack有兩個建構函式:不傳參開闢大小為10的陣列,傳參按照引數開闢陣列

stack有兩個狀態函式判斷棧是否為空或滿(empty() full())

stack功能:

push:未滿存入目標元素,滿了開闢兩倍大小的陣列再存入目標元素

pop:棧為空直接退出,否則拋棄棧頂元素

get():用於得到第i個元素,預設為0

size():得到棧元素總數

過載:得到下標元素的值

print函式輸出棧內所有元素,從棧底開始

stack.h

#ifndef stack_h

#define stack_h

template class stack

bool full() //判斷棧是否已滿

int size();

t& operator (int i); //運算子過載

void print();

~stack();

};#endif /* stack_h */

stack.cpp

#include "stack.h"

#include

#include

using

namespace

std;

template

void stack:: print() //輸出當前棧內所有元素

template

stack:: stack() : tot(10), pointer(0) //不帶引數的建構函式

template

t stack:: get(int i) //帶引數的建構函式

template

void stack:: push(const t &i)

else

//滿了開闢兩倍空間並複製原來的元素最後還複製回data

}template

t stack:: pop()

template

t& stack:: operator (int i)

template

int stack:: size()

template

stack:: stack (int cnt) : tot(cnt), pointer(0)

template

stack:: ~stack()

smain.cpp

#include 

#include

#include "stack.h"

#include "stack.cpp"

using

namespace

std;

int main()

smain函式的測試

兩個不帶引數的int型物件obj1,obj2。obj2沒有push任何元素,pop()失敗。obj2將0~199

push進去並進行下面的測試

測試測試size()

測試get(2)

測試pop刪除

再次測試size()

測試get() 預設為第0個

測試get(3)

char型的obj3從a開始按順序push了20個大寫字母

測試size

測試測試get() 預設第0個

測試get(2)

測試pop

再次測試size

char型的obj4(5) (指定開闢空間為5)push了h e l l o

測試print函式

測試obj4

最後輸出為:

obj1[0] = 199

obj1.size() = 200

197obj1.size() = 199

198195

obj3.size() = 20

obj3[0] = ttr

obj3.size() = 19

hello

C 棧的簡單介紹

棧 stack 代表了乙個只有乙個出口的後進先出的物件集合。在列表中新增一項,稱為推入元素,從列表中移除一項時,稱為彈出元素。stack類 public class stack ienumerable,icollection,ienumerable count 獲取 stack 中包含的元素個數 p...

2 C 實現簡單的棧

2.編寫乙個類,實現簡單的棧。棧中有以下操作 元素入棧 void push int 元素出棧 void pop 讀出棧頂元素 int top 判斷棧空 bool emty 判斷棧滿 bool full 如果棧溢位,程式終止。棧的資料成員由存放 10個整型資料的陣列構成。先後做如下操作 建立棧 將10...

棧的簡單總結(順序棧)

棧結構的特點 棧是線性表結構的一種,但是棧結構的插入與刪除操作都只能從同一端進行,所以棧結構是一種受限制的線性表結構,資料的插入與刪除符合lifo的原則 也就是後進先出,先進後出 棧的結構 對棧進行插入與刪除操作的一端稱為棧頂 top 另一端則稱為棧底 base 棧的進本操作 棧的基本操作有向棧中壓...