青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

類模板實現堆棧-VC編程

Posted on 2009-10-06 01:55 S.l.e!ep.¢% 閱讀(523) 評論(0)  編輯 收藏 引用 所屬分類: C++
類模板實現堆棧-VC編程
2008-05-29 08:16:40

采用了三種實現方法:

1、自己定義數組(Stack 堆棧數組大小不能動態增加)

2、使用STL的vector(Vector_Stack 堆棧數組可動態變化)

3、使用STL的list(List_Stack 堆棧數組可動態變化)


以下是stack.h的頭文件,所有接口函數都寫為內聯,因此沒有實現文件。
正在裝載數據……


#ifndef ___STACK_H___
#define ___STACK_H___

#include <windows.h>
#include <vector>

using namespace std;

template<class T,int size = 100>
class Stack
{
public:
Stack():top(0){}
~Stack(){};

int Push(T& data)
{
if (top >= size)
{
return top;
}
stack[top ] = data;
return top;
}
int Pop(T* pData)
{
if (top <= 0)
{
return -1;
}
*pData = stack[--top];
return 0;
}
int Size()
{
return top;
}
int Clear()
{
top = 0;
return 0;
}
int Peek(T* pData)
{
*pData = stack[top];
return 0;
}
BOOL IsEmpty()
{
return (top > 0 ? FALSE : TRUE);
}
protected:
private:
T stack[size];
int top;
};


template<class T>
class Vector_Stack
{
public:
Vector_Stack(){}
~Vector_Stack(){};

int Push(T& data)
{
vstack.push_back(data);
return vstack.size();
}
int Pop(T* pData)
{
if (vstack.empty())
{
*pData = 0;
return -1;
}
else
{
*pData = vstack.back();
vstack.pop_back();
return 0;
}
}
int Size()
{
return vstack.size();
}
int Clear()
{
vstack.clear();
return 0;
}
int Peek(T* pData)
{
*pData = vstack.back();
return 0;
}
BOOL IsEmpty()
{
return (vstack.empty() ? TRUE : FALSE);
}
protected:
private:
vector<T> vstack;
};

template<class T>
class List_Stack
{
public:
List_Stack(){}
~List_Stack(){};

int Push(T& data)
{
lstack.push_back(data);
return lstack.size();
}
int Pop(T* pData)
{
if (lstack.empty())
{
*pData = 0;
return -1;
}
else
{
*pData = lstack.back();
lstack.pop_back();
return 0;
}
}
int Size()
{
return lstack.size();
}
int Clear()
{
lstack.clear();
return 0;
}
int Peek(T* pData)
{
*pData = lstack.back();
return 0;
}
BOOL IsEmpty()
{
return (lstack.empty() ? TRUE : FALSE);
}
protected:
private:
vector<T> lstack;
};

#endif

檢驗代碼:

// 模板(棧).cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stack.h"

#include <vector>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
/************************************************************************/
/* Stack */
/************************************************************************/
cout<<"********** Stack **********"<<endl;

int i,nSize;
int data;
const int size = 3;
Stack<int,size> intStack;

cout<<"set stack size=3"<<endl;

for (i=0;i<3;i )
{
data = (i 1)*100;
intStack.Push(data);
cout<<"push "<<data<<endl;
}
cout<<"size="<<intStack.Size()<<endl;

for (i=0;i<size 1;i )
{
if (!intStack.Pop(&data))
{
cout<<"pop data:"<<data<<endl;
}
}
cout<<"size="<<intStack.Size()<<endl<<endl;

/************************************************************************/
/* Vector_Stack */
/************************************************************************/
cout<<"********** Vector_Stack **********"<<endl;

Vector_Stack<int> vIntStack;

for (i=0;i<5;i )
{
data = (i 1)*10;
vIntStack.Push(data);
cout<<"push "<<data<<endl;
}
nSize = vIntStack.Size();
cout<<"size="<<nSize<<endl;

for (i=0;i<nSize 1;i )
{
vIntStack.Pop(&data);
cout<<"pop data:"<<data<<endl;
}
nSize = vIntStack.Size();
cout<<"size="<<nSize<<endl;

cout<<"IsEmpty="<<vIntStack.IsEmpty()<<endl<<endl;

/************************************************************************/
/* List_Stack */
/************************************************************************/
cout<<"********** List_Stack **********"<<endl;

List_Stack<int> lIntStack;

for (i=0;i<5;i )
{
data = (i 1)*10;
lIntStack.Push(data);
cout<<"push "<<data<<endl;
}
nSize = lIntStack.Size();
cout<<"size="<<nSize<<endl;

for (i=0;i<nSize 1;i )
{
lIntStack.Pop(&data);
cout<<"pop data:"<<data<<endl;
}
nSize = lIntStack.Size();
cout<<"size="<<nSize<<endl;

cout<<"IsEmpty="<<lIntStack.IsEmpty()<<endl;

return 0;
}


運行結果為:

********** Stack **********
set stack size=3
push 100
push 200
push 300
size=3
pop data:300
pop data:200
pop data:100
size=0

********** Vector_Stack **********
push 10
push 20
push 30
push 40
push 50
size=5
pop data:50
pop data:40
pop data:30
pop data:20
pop data:10
pop data:0
size=0
IsEmpty=1

********** List_Stack **********
push 10
push 20
push 30
push 40
push 50
size=5
pop data:50
pop data:40
pop data:30
pop data:20
pop data:10
pop data:0
size=0
IsEmpty=1
Press any key to continue


文章轉載自『幽月's Blog』

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            香蕉乱码成人久久天堂爱免费| 中文亚洲欧美| 久久精品99久久香蕉国产色戒| 伊人久久婷婷色综合98网| 国产精品高潮呻吟| 国产精品尤物福利片在线观看| 国产精品成人一区二区艾草| 国产精品捆绑调教| 国产精品亚洲аv天堂网| 国产日本欧美一区二区| 激情六月婷婷综合| 91久久午夜| 亚洲尤物精选| 久久久国产精品亚洲一区| 麻豆久久婷婷| 亚洲免费观看高清完整版在线观看| 99精品免费视频| 欧美亚洲一区二区三区| 欧美~级网站不卡| 国产精品久久久久久久久免费樱桃 | 一区二区三区四区蜜桃| 亚洲欧美国产不卡| 欧美成人综合一区| 国产精品99久久久久久久久久久久 | 欧美一区二区三区日韩视频| 久久久免费精品视频| 欧美精品久久久久久久| 国产精品一区二区三区观看| 亚洲二区在线| 亚洲一区二区免费在线| 欧美成人午夜激情| 国产精品99久久99久久久二8| 久久在线播放| 欧美四级电影网站| 亚洲日本aⅴ片在线观看香蕉| 先锋资源久久| 亚洲精品永久免费精品| 久久免费99精品久久久久久| 欧美视频在线播放| 亚洲国产mv| 久久久久久久999| 一区二区三区四区五区视频| 久久久久久综合网天天| 国产欧美日韩精品丝袜高跟鞋| 亚洲人成高清| 美女黄网久久| 欧美在线观看视频| 国产精品一区毛片| 亚洲少妇中出一区| 亚洲国产精品尤物yw在线观看| 91久久精品国产91久久性色tv| 亚洲经典一区| 狂野欧美激情性xxxx欧美| 亚洲欧美欧美一区二区三区| 欧美日韩免费一区二区三区视频| 亚洲激情午夜| 欧美成人a视频| 麻豆精品91| 亚洲激情视频在线播放| 欧美成人精品1314www| 久久精品国产综合| 在线成人h网| 亚洲电影免费| 欧美欧美午夜aⅴ在线观看| 亚洲美女精品一区| 亚洲乱码国产乱码精品精可以看| 欧美精品成人91久久久久久久| 亚洲黄页一区| 亚洲免费观看高清完整版在线观看熊| 欧美美女视频| 亚洲欧美国产三级| 亚洲免费视频中文字幕| 欧美日韩一区二区欧美激情| 一本色道久久加勒比精品| 午夜一区二区三区在线观看| 免费在线播放第一区高清av| 久久成人精品视频| 国产性色一区二区| 久久精品国产亚洲一区二区三区| 欧美在线亚洲| 极品尤物av久久免费看| 久久一区亚洲| 浪潮色综合久久天堂| 亚洲电影在线播放| 美女尤物久久精品| 久久夜色精品国产欧美乱极品| 欧美日韩国产限制| 久久精品成人欧美大片古装| 亚洲欧美自拍偷拍| 国产日韩欧美中文| 久久精品综合| 久久一区亚洲| 日韩午夜高潮| 99国产精品久久久| 免费观看一级特黄欧美大片| 亚洲一级在线观看| 亚洲欧美一区二区三区在线| 国产亚洲激情视频在线| 美国十次成人| 免费影视亚洲| 中国成人亚色综合网站| 亚洲一本大道在线| 欧美日本中文字幕| 久热精品在线| 欧美乱在线观看| 欧美一级淫片aaaaaaa视频| 欧美中文字幕视频在线观看| 亚洲国内精品在线| 99re视频这里只有精品| 国产亚洲欧美另类中文| 久久久久久国产精品mv| 欧美阿v一级看视频| 一本色道久久综合亚洲精品按摩| 欧美成人精品一区二区三区| 日韩视频在线你懂得| 日韩手机在线导航| 好看的日韩av电影| 亚洲欧美精品在线观看| 亚洲黑丝一区二区| 亚洲视频一区二区在线观看 | 日韩视频免费观看高清在线视频| 国产精品久久久久影院亚瑟 | 一区二区三区高清在线观看| 国产一区二区中文| 99热精品在线观看| 亚洲缚视频在线观看| 亚洲一区二区免费在线| 亚洲国产精品免费| 一区二区三区久久久| 黄色精品一二区| 在线一区日本视频| 亚洲日韩视频| 久久久av水蜜桃| 亚洲欧美日韩国产成人| 免费成人黄色| 亚洲国产日韩一区| 尹人成人综合网| 亚洲欧美国产高清va在线播| 99成人免费视频| 久久久久久色| 久久九九全国免费精品观看| 国产精品电影观看| 亚洲欧美日本在线| 亚洲欧美中文日韩在线| 欧美另类高清视频在线| 久久综合免费视频影院| 国产欧美日韩在线视频| 中文国产亚洲喷潮| 亚洲午夜性刺激影院| 亚洲欧美日韩综合| 麻豆精品精华液| 精品动漫3d一区二区三区免费版 | 国产一区二区三区免费观看| 亚洲精品日韩一| 亚洲精品一区二区三区婷婷月| 久久精品一区二区三区中文字幕| 欧美一区亚洲二区| 国产麻豆日韩欧美久久| 亚洲欧美国产另类| 欧美专区18| 欧美性做爰毛片| 日韩午夜中文字幕| 亚洲精品视频啊美女在线直播| 免费毛片一区二区三区久久久| 你懂的成人av| 亚洲人体1000| 欧美片在线播放| 艳妇臀荡乳欲伦亚洲一区| 中文久久精品| 国产精品呻吟| 久久精品国产欧美激情| 久久久综合精品| 日韩午夜精品视频| 国产精品一卡二卡| 亚洲午夜在线视频| 久久精品亚洲一区二区| 国产一区二区精品在线观看| 欧美一级片在线播放| 久久综合九色99| 亚洲全部视频| 国产精品亚洲激情| 久久久精品国产免费观看同学| 免费精品99久久国产综合精品| 亚洲国产视频一区二区| 欧美日韩国产综合视频在线| 亚洲欧美日本精品| 亚洲精品韩国| 国产精品卡一卡二| 久久夜精品va视频免费观看| 日韩视频一区二区三区| 久久精品国产精品亚洲| 亚洲国内自拍| 国产精品三上| 欧美aa国产视频| 亚洲综合国产精品| 亚洲国产欧美久久| 亚洲精品日韩综合观看成人91| 国内欧美视频一区二区| 欧美日本国产精品| 欧美有码在线视频|