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

首頁 > 編程 > C > 正文

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

2020-01-26 13:35:26
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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 << "動態存儲分配失??!" << 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;}

測試代碼

#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;}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人一区二区三区小说| 成人看片人aa| 北条麻妃久久精品| 91在线观看免费观看| 欧美亚洲激情视频| 欧美激情在线播放| 国产欧美精品xxxx另类| 欧美成人一区二区三区电影| 91九色视频在线| 国产精品欧美风情| 最近2019年手机中文字幕| 久久久久久久999精品视频| 国产欧美在线播放| 中文字幕精品网| 一区二区三区无码高清视频| 蜜臀久久99精品久久久久久宅男| 色老头一区二区三区| 国产xxx69麻豆国语对白| 欧美激情三级免费| 日本久久久a级免费| 日韩成人在线播放| 日韩成人小视频| 91久久久国产精品| 最近中文字幕mv在线一区二区三区四区| 欧美日韩国产综合视频在线观看中文| 日韩在线视频免费观看| 亚洲人午夜精品| 亚洲影院高清在线| 久久国产加勒比精品无码| 欧美亚洲激情在线| 欧美高清视频在线播放| 免费不卡在线观看av| 亚洲成人网在线观看| 欧美日韩在线视频一区二区| 在线日韩第一页| 日韩动漫免费观看电视剧高清| 欧美精品久久久久久久久| 最新国产成人av网站网址麻豆| 亚洲精品一区二区三区不| 日韩经典中文字幕| 国产精品91一区| 高清欧美电影在线| 国产成人精品亚洲精品| 欧美亚洲另类激情另类| 久久影院免费观看| 日韩精品视频在线| 97av视频在线| 成人午夜高潮视频| 成人国产亚洲精品a区天堂华泰| 亚洲国内精品视频| 亚洲图中文字幕| 亚洲最新av网址| 欧美国产在线电影| 久久资源免费视频| 日韩日本欧美亚洲| 欧美一级视频一区二区| 久热精品在线视频| 日产精品久久久一区二区福利| 清纯唯美亚洲激情| 一区二区三区高清国产| 午夜精品福利在线观看| 欧美有码在线观看| 91精品免费视频| xxxxxxxxx欧美| 亚洲a∨日韩av高清在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲成人av片在线观看| 久久69精品久久久久久国产越南| 亚洲精品国产美女| 国产又爽又黄的激情精品视频| 亚洲男人av在线| 美女黄色丝袜一区| 高清欧美一区二区三区| 日韩国产高清污视频在线观看| 麻豆国产va免费精品高清在线| 欧美日韩xxxxx| 91中文精品字幕在线视频| 亚洲人成电影网站色| 国产一区二区三区视频免费| 欧美韩日一区二区| 亚洲午夜未满十八勿入免费观看全集| 国产精品91在线观看| 欧美性xxxx极品高清hd直播| 57pao国产精品一区| 精品国内自产拍在线观看| 亚洲欧美日韩中文在线制服| 国产精品久久精品| 国产精品美女视频网站| 九九精品视频在线观看| 国产精品视频999| 亚洲福利在线视频| 亚洲精品永久免费精品| 国产在线精品一区免费香蕉| 亚洲男人天堂古典| 精品久久中文字幕| 欧洲日本亚洲国产区| 亚洲自拍偷拍色图| 亚洲成av人乱码色午夜| 亚洲精品456在线播放狼人| 91精品国产91久久久久久吃药| 亚洲电影免费观看高清完整版| 一区二区三区 在线观看视| 欧美视频中文字幕在线| 亚洲国产精品一区二区三区| 国产精品九九久久久久久久| 成人免费黄色网| 久久视频在线观看免费| 国产精品一区二区在线| 国产精品九九久久久久久久| 久久久亚洲影院| 国产精品老女人精品视频| 日韩av在线免费看| 久久人人爽人人爽人人片av高清| 亚洲黄色免费三级| 国产精品久久久久久久app| 亚洲国产精品va在看黑人| 热久久这里只有精品| 久久久久久一区二区三区| 欧美精品激情视频| 欧美激情视频播放| 国产精品亚洲аv天堂网| 欧美激情免费在线| 亚洲午夜久久久久久久| www国产精品视频| 久久久久久有精品国产| 自拍视频国产精品| 亚洲女在线观看| 91国偷自产一区二区三区的观看方式| 亚洲国产三级网| 午夜精品视频在线| 韩剧1988免费观看全集| 亚洲影影院av| 日韩**中文字幕毛片| 亚洲欧美国产精品va在线观看| 国产成人精品视频| 亚洲美女性视频| 久久久久中文字幕2018| 国产精品永久在线| 国产精品扒开腿爽爽爽视频| 欧美在线视频观看免费网站| 精品久久中文字幕久久av| 国产成人一区二区在线| 久久这里有精品视频| 日韩免费观看高清| 欧美一级片久久久久久久| 2018中文字幕一区二区三区| 亚洲综合最新在线| 亚洲的天堂在线中文字幕| 日韩成人av在线播放| 91网站免费看| 国产成人福利视频| 欧美成人免费一级人片100| 日韩欧美精品在线观看| 日韩精品亚洲元码| 亲子乱一区二区三区电影| 91久久精品日日躁夜夜躁国产| 日韩视频免费大全中文字幕| 成人午夜一级二级三级| 国产精品福利片| 亚洲欧美制服中文字幕| 一二美女精品欧洲| 亚洲男人第一网站| 日本一区二区在线免费播放| 国产视频久久久久久久|