本文实例为大家分享了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.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:C语言利用模板实现简单的栈类-创新互联
网页URL:https://www.cdcxhl.com/article28/cshdcp.html
成都网站建设公司_创新互联,为您提供静态网站、虚拟主机、用户体验、服务器托管、Google、建站公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联