利用模板實現簡單的棧類(陣列和單鏈表)

2021-08-16 04:59:14 字數 1869 閱讀 2384

#pragma once

using namespace std;

const int maxsize = 0xfff;

template

type>

class class_linkstack

}class_linkstack(int size) :top(-1), max_size(size)

}~class_linkstack()

bool empty_linkstack();

void push_linkstack(type

tp);

void pop_linkstack();

type

top_linkstack();

int size_linkstack();

void print_linkstack();

};template

type>

void class_linkstack::print_linkstack()

}template

type>

bool class_linkstack::empty_linkstack()

}template

type>

void class_linkstack::push_linkstack(

type

tp)}

template

type>

void class_linkstack::pop_linkstack()

else

}template

type>

type

class_linkstack

::top_linkstack()

}template

type>

int class_linkstack::size_linkstack()

#include "class_linkstack.h"

int main()

上面是通過陣列來實現,與陣列相比,鍊錶實現更靈活,更容易增刪元素。

單鏈表實現的核心思想是不斷更新棧頂指標,來實現出棧壓棧,每乙個節點是乙個結構體,包含乙個value和乙個next指標指向下乙個元素,初始化時將棧頂指標置為null。

#pragma once

using namespace std;

template

type>

struct listnode

};template

type>

class list_stack

}};template

type>

bool list_stack::empty()

}template

type>

list_stack::list_stack()

template

type>

void list_stack::push(

type &tp)

template

type>

void list_stack::pop()

else

}template

type>

int list_stack::size()

template

type>

void list_stack::print()

}

簡單測試:

類模板實現單鏈表

特別注意 編寫函式前必須先進行模板的宣告 includeusing namespace std templateclass list 宣告list類 templateclass listnode listnode type d,listnode n null data d next n listno...

C 類模板實現順序棧

棧的抽象類的定義 template class stack 順序棧類的定義 include stack.h template class seqstack public stack 順序棧類的實現 include using namespace std template seqstack seqst...

利用模板實現vector類,異常處理

題目描述 參考c vector類模板,設計實現自己的cvector向量類模板,完成下列基本功能 構造 析構 size push back和下標訪問,在通過下標訪問越界時丟擲異常。編寫測試程式,利用該類模板完成乙個直譯器,它接受命令,執行相應操作。本題不可使用stl vector,所需記憶體通過動態分...