c 資料結構 模板類重寫棧

2021-07-05 22:59:09 字數 1950 閱讀 7072

模板重寫棧的基本操作,不多說,上**,不足之處,麻煩大神指點。。。

基本操作如下:

bool is_empty(my_stack*a);//是否為空棧

t gettop(my_stack*a);//獲取棧頂元素

void stack_push(my_stack*a,t b);//入棧

t stack_pop(my_stack*a);//出棧

int stacklenth(my_stack* a);//獲取棧的長度

my_stack* stackclear(my_stack* a);//清空棧內元素

void stackdestroy(my_stack* a);//銷毀棧

整個的**如下:

#ifndef data_structure_stack_h

#define data_structure_stack_h

#include #include#include//建立自己的模板函式

using namespace std;

//棧和佇列的實現

//前置申明模板友元類

templateclass stack_node;

templateclass my_stack;

templatebool operator== (const my_stack&,const stack_node&);

templateclass stack_node

; stack_node(t a):value(a),next(null){};

~stack_node(){};

private:

t value;

stack_node *next;

};templateclass my_stack:public stack_node;

~my_stack(){};

my_stack(t a)

bool is_empty(my_stack*a);//是否為空棧

t gettop(my_stack*a);//獲取棧頂元素

void stack_push(my_stack*a,t b);//入棧

t stack_pop(my_stack*a);//出棧

int stacklenth(my_stack* a);//獲取棧的長度

my_stack* stackclear(my_stack* a);//清空棧內元素

void stackdestroy(my_stack* a);//銷毀棧

private:

int len;

stack_node *top;

};templatebool my_stack::is_empty(my_stack*a)

templatet my_stack::gettop(my_stack*a)

}templatevoid my_stack::stack_push(my_stack*a,t b)

templatet my_stack::stack_pop(my_stack*a)

else }

templateint my_stack::stacklenth(my_stack* a)

templatemy_stack* my_stack::stackclear(my_stack* a)

a=head;

a->top=null;

a->len=0;

return head;

}templatevoid my_stack::stackdestroy(my_stack* a)

delete head->top;

delete head;

}#endif

測試**如下:

#include "data_structure_stack.h"

int main()

資料結構模板 棧

此部落格是存的是我自己編寫的棧模板,如有錯誤請指出棧是操作受限的線性表,只允許在棧頂進行插入和刪除操作,遵循 後進先出 原則。include include define elemtype int define maxsize 1000 using namespace std 這是順序棧的模板 ty...

資料結構模板 佇列

此部落格是存的是我自己編寫的佇列模板,如有錯誤請指出佇列是操作受限的線性表,只允許在隊頭進行刪除操作,在隊尾進行插入操作,遵循 先進先出 原則。順序隊 存在假溢位問題 include include define elemtype int define maxsize 1000 using name...

資料結構模板合集

線段樹lazy操作模板 區間修改,區間查詢 class segment tree lazy inline void add int p,int v,int t inline void pushdown int p,int l,int r public inline void build tree i...