本文實例為大家分享了C語言利用模板實現簡單的棧類(數組和單鏈表),供大家參考,具體內容如下
主要的功能是實現一個后進先出的列表,有入棧、出棧、返回大小、判空等基本功能
#pragma once using namespace std; const int MAXSIZE = 0xfff; template<class type> class Class_Linkstack { int top; type* my_s; int max_size; public: Class_Linkstack() :top(-1), max_size(MAXSIZE) { my_s = new type[max_size]; if (my_s == NULL) { cerr << "動態存儲分配失敗!" << endl; exit(1); } } Class_Linkstack(int size) :top(-1), max_size(size) { my_s = new type[size]; if (my_s == NULL) { cerr << "動態存儲分配失敗!" << endl; exit(1); } } ~Class_Linkstack() { delete[] my_s; } bool Empty_Linkstack(); void Push_Linkstack(type tp); void Pop_Linkstack(); type Top_Linkstack(); int Size_Linkstack(); void Print_Linkstack(); }; template<class type> void Class_Linkstack<type>::Print_Linkstack() { if (top == -1) cout << "空棧" << endl; else { for (int i = 0; i < top+1; i++) cout << my_s[i] << '\t'; } } template<class type> bool Class_Linkstack<type>::Empty_Linkstack() { if (top == -1) return true; else { return false; } } template<class type> void Class_Linkstack<type>::Push_Linkstack(type tp) { if (top + 1 < max_size) my_s[++top] = tp; else { cout << "棧已滿" << endl; exit(1); } } template<class type> void Class_Linkstack<type>::Pop_Linkstack() { if (top == -1) { cout << "為空棧" << endl; exit(1); } else { my_s[top--] = 0; } } template<class type> type Class_Linkstack<type>::Top_Linkstack() { if (top != -1) return my_s[top]; else { cout << "為空棧" << endl; exit(1); } } template<class type> int Class_Linkstack<type>::Size_Linkstack() { return top + 1; }
另外有需要云服務器可以了解下創新互聯建站www.yijiale78.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享文章:C語言利用模板實現簡單的棧類-創新互聯
網頁URL:http://www.yijiale78.com/article28/cshdcp.html
成都網站建設公司_創新互聯,為您提供靜態網站、虛擬主機、用戶體驗、服務器托管、Google、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯