直接放代码了
/*
栈
2018年11月12日
*/
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#define MAXSIZE 1100
using namespace std;
template<typename T>
class Stack{
/*
1.入栈
2.出栈
3.栈中元素个数
3.栈顶元素
*/
private:
T date[MAXSIZE];
int num;
public:
Stack()
{
num=0;
}
bool push(T val)
{
if(num==MAXSIZE)
return 0;
date[num++]=val;
return 1;
}
bool pop()
{
if(num==0)
return 0;
num--;
return 1;
}
T top()
{
return date[num-1];
}
int size()
{
return num;
}
bool empty()
{
if(!num)
return 1;
return 0;
}
};
int main()
{
Stack<int> dch;
dch.push(1);
dch.push(2);
dch.push(3);
while(!dch.empty())
{
cout<<dch.top()<<endl;
dch.pop();
}
}
队列代码
/*
队列
2018年11月12日
*/
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#define MAXSIZE 1100
using namespace std;
template<typename T>
class Queue{
/*
1.入队
2.出队
3.是否为空
4.个数
5.取队首元素
6.取队尾元素
*/
private:
T date[MAXSIZE];
int tail;
int head;
public:
Queue()
{
tail=head=0;
}
bool empty()
{
if(tail==head)
return 1;
return 0;
}
bool fill()
{
if((tail+1-head+MAXSIZE)%MAXSIZE==0)
return 1;
return 0;
}
int size()
{
return (tail-head+MAXSIZE)%MAXSIZE;
}
bool push(T val)
{
if(fill())
return 0;
date[tail]=val;
tail=(tail+1)%MAXSIZE;
return 1;
}
bool front(T &val)
{
if(empty())
return 0;
val=date[head];
return 1;
}
bool pop()
{
if(empty())
return 0;
head=(head+1+MAXSIZE)%MAXSIZE;
return 1;
}
};
int main()
{
Queue<int> dch;
int val;
dch.push(10);
dch.push(11);
dch.push(12);
dch.push(13);
while(!dch.empty())
{
dch.front(val);
cout<<val<<endl;
dch.pop();
}
}
所有代码均经过调试