亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言利用模板實現簡單的棧類

2020-05-23 13:22:09
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言利用模板實現簡單的棧類(數組和單鏈表),供大家參考,具體內容如下

主要的功能是實現一個后進先出的列表,有入棧、出棧、返回大小、判空等基本功能

#pragma onceusing 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 << "動態存儲分配失?。?quot; << endl;      exit(1);    }  }  Class_Linkstack(int size) :top(-1), max_size(size)  {    my_s = new type[size];    if (my_s == NULL)    {      cerr << "動態存儲分配失?。?quot; << 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;}

測試代碼

#include "Class_Linkstack.h"int main(){  Class_Linkstack<int> sk1(5);  for (int i = 0; i < 5;i++ )    sk1.Push_Linkstack(i * 2 + 1);  sk1.Print_Linkstack();   system("pause");  return 0;}

補充(通過單鏈表實現)

上面是通過數組來實現,與數組相比,鏈表實現更靈活,更容易增刪元素。 
單鏈表實現的核心思想是不斷更新棧頂指針,來實現出棧壓棧,每一個節點是一個結構體,包含一個value和一個next指針指向下一個元素,初始化時將棧頂指針置為NULL。

 

#pragma onceusing namespace std;template<class type>struct listnode{  type value;  listnode* next;  listnode(type v,listnode* p):value(v),next(p){ }};template<class type>class List_stack{  listnode<type>* top;  int size = 0;public:  List_stack();  void Push(type &tp);  void Pop();  bool Empty();  int Size();  void Print();  ~List_stack()  {    while (top)    {      listnode<type> * p = top;      top = top->next;      delete p;    }  }};template<class type>bool List_stack<type>::Empty(){  if (top == NULL)    return true;  else  {    return false;  }}template<class type>List_stack<type>::List_stack(){  top = NULL;  size = 0;}template<class type>void List_stack<type>::Push(type &tp){  listnode<type> *tmp=new listnode<type>(tp,top);  top = tmp;  size++;}template<class type>void List_stack<type>::Pop(){  if (top == NULL)  {    cout << "為空棧" << endl;  }  else  {    top = top->next;    size--;  }}template<class type>int List_stack<type>::Size(){  return size;}template<class type>void List_stack<type>::Print(){  listnode<type>* tmp = top;  while (tmp != NULL)  {    cout << tmp->value << '/t';    tmp = tmp->next;  }}

簡單測試:

int main(){  List_stack<int> ls;  for (int i = 0; i < 5; i++)    ls.Push(i);  ls.Print();  ls.Pop();  ls.Pop();  cout << endl;  ls.Print();  cout << endl;  cout << ls.Size();  system("pause");  return 0;}

C語言,模板,棧類

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品电影在线观看| 亚洲欧美国产精品久久久久久久| 精品亚洲aⅴ在线观看| 日韩精品丝袜在线| 亚洲精品久久久久久久久久久久久| 国产日韩欧美视频在线| 日韩欧美aⅴ综合网站发布| 97av在线影院| 国产精品黄视频| 亚洲最新中文字幕| 97成人在线视频| 国产精品678| 亚洲男人的天堂在线播放| 中文字幕亚洲第一| 久久精品99久久久香蕉| 欧美视频免费在线| 亚洲欧美国产日韩中文字幕| 久久影院免费观看| 91色中文字幕| 亚洲欧美日韩久久久久久| 欧美色道久久88综合亚洲精品| 97精品国产97久久久久久免费| 国产精品视频网址| 亚洲精品黄网在线观看| 亚洲免费高清视频| 91国内揄拍国内精品对白| 色狠狠久久aa北条麻妃| 国产亚洲精品91在线| 狠狠色噜噜狠狠狠狠97| 久久在线观看视频| 国产男女猛烈无遮挡91| 日韩二区三区在线| 亚洲a在线观看| 欧美亚洲成人网| 欧美日韩电影在线观看| 日本成人免费在线| 精品久久久久久中文字幕大豆网| 日韩中文字幕av| 国产精品视频一区二区三区四| 欧美亚洲另类制服自拍| 欧美乱大交做爰xxxⅹ性3| 国产精品久久久久久久久男| 欧美电影《睫毛膏》| 欧美激情视频一区二区| 日韩精品视频免费在线观看| 操91在线视频| 国产91精品青草社区| 亚洲一区中文字幕| 久久久久九九九九| 91精品国产777在线观看| 久久亚洲电影天堂| 性视频1819p久久| 色噜噜狠狠色综合网图区| 久久久91精品| 久久久久五月天| 性欧美xxxx视频在线观看| 日韩中文字在线| 欧美洲成人男女午夜视频| 亚洲高清不卡av| 国产精品亚洲片夜色在线| 国产福利视频一区| 黑人欧美xxxx| 久久精品视频va| 7m精品福利视频导航| 欧美一区深夜视频| 4444欧美成人kkkk| 欧美亚洲成人免费| 亚洲**2019国产| 大伊人狠狠躁夜夜躁av一区| 亚洲一区第一页| 日韩欧美中文第一页| 伊人一区二区三区久久精品| 日本三级久久久| 亚洲国产毛片完整版| 91免费看片网站| 久久精品影视伊人网| 国产成人拍精品视频午夜网站| 国产精品久久久亚洲| 国产精品∨欧美精品v日韩精品| 日韩av有码在线| 美女撒尿一区二区三区| 国模精品视频一区二区| 久久免费国产精品1| 国产欧美精品xxxx另类| 国产一区二区三区日韩欧美| 黑人巨大精品欧美一区二区一视频| 亚洲精品永久免费精品| 国产999在线观看| 国产人妖伪娘一区91| 精品av在线播放| 最近2019中文字幕mv免费看| 色噜噜狠狠狠综合曰曰曰88av| 日韩在线观看免费全集电视剧网站| 色综合久久88色综合天天看泰| 久久精品国产免费观看| 尤物九九久久国产精品的分类| 色婷婷亚洲mv天堂mv在影片| 国产成人精品久久亚洲高清不卡| 国外成人在线视频| 亚洲精品久久久久久久久久久| 日韩有码在线播放| 欧美精品久久久久a| 国产精品偷伦一区二区| 美女福利精品视频| 日韩免费观看高清| 成人妇女淫片aaaa视频| 91免费国产网站| 亚洲成人999| 中文字幕视频一区二区在线有码| 国产欧美精品一区二区| 国产精品久久久久不卡| 久热精品视频在线观看| 亚洲精品之草原avav久久| 日韩成人激情视频| 黑人精品xxx一区一二区| 亚洲精品国产精品国自产观看浪潮| 精品久久久久久中文字幕一区奶水| 亚洲无亚洲人成网站77777| 插插插亚洲综合网| 国产精品久久久久久久久久99| 午夜剧场成人观在线视频免费观看| 欧美黄色三级网站| 日韩欧美在线第一页| 精品久久久久久久久久久| 中文字幕亚洲欧美| 91欧美精品午夜性色福利在线| 国自产精品手机在线观看视频| 欧美激情亚洲国产| 国产精品入口日韩视频大尺度| 精品国产乱码久久久久久虫虫漫画| 欧美成人一区在线| 欧美日本在线视频中文字字幕| 久久久精品国产一区二区| 91在线直播亚洲| 国产一区二区丝袜| 国产激情综合五月久久| 日韩美女av在线| 欧美贵妇videos办公室| 久久久亚洲影院| 亚洲第一av网站| 日韩美女毛茸茸| 日韩中文理论片| 欧美亚洲一级片| 亚洲视频在线播放| 精品国产一区二区三区久久狼黑人| 欧美日韩免费在线观看| 久久综合88中文色鬼| 国产女同一区二区| 日韩在线观看免费全集电视剧网站| 欧美激情亚洲综合一区| 亚洲国模精品私拍| 98精品国产高清在线xxxx天堂| 日韩av网站导航| 国产精品视频精品| 草民午夜欧美限制a级福利片| 亚洲成人激情在线观看| 欧美插天视频在线播放| 日韩av网址在线| 亚洲区在线播放| 久久色免费在线视频| 成人a级免费视频| 日韩av片永久免费网站| 亚洲人成在线观看网站高清| 日韩国产精品视频|