自行封装一个栈的类,包含私有成员的属性:栈的数组,记录栈顶的变量
成员函数:构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求站的大小
头文件
#ifndef STACK_H
#define STACK_H
#include
using namespace std;
class st
{
private:
//记录栈顶的变量
int top;
//使用指针来存储栈
int *data;
public:
//构造函数
st():top(-1),data(new int[5])
{
cout<<"无参构造函数"<
功能函数
#include "stack.h"
//入栈
int st::stack_in(int e,int *data)
{
if(nullptr == data||stack_full(data))
{
cout<<"入栈失败!"<=0;i--)
{
cout<<" "<
主函数
#include "stack.h"
int main()
{
st s1;
int stack[5];
//入栈
s1.stack_in(3,stack);
s1.stack_show(stack);
s1.stack_top(stack);
s1.stack_size(stack);
s1.stack_in(4,stack);
s1.stack_show(stack);
s1.stack_top(stack);
s1.stack_size(stack);
s1.stack_in(5,stack);
s1.stack_show(stack);
s1.stack_top(stack);
s1.stack_size(stack);
s1.stack_in(6,stack);
s1.stack_show(stack);
s1.stack_top(stack);
s1.stack_size(stack);
s1.stack_in(7,stack);
s1.stack_in(7,stack);
s1.stack_in(7,stack);
s1.stack_in(7,stack);
//遍历栈
s1.stack_show(stack);
//出栈
s1.stack_out(stack);
s1.stack_out(stack);
s1.stack_out(stack);
s1.stack_out(stack);
s1.stack_out(stack);
s1.stack_out(stack);
//遍历栈
s1.stack_show(stack);
//获取栈顶元素
s1.stack_show(stack);
s1.stack_top(stack);
s1.stack_size(stack);
//求栈的大小
//清空栈
s1.stack_clear(stack);
return 0;
}
封装一个循环顺序队列的类,包含私有成员属性:存放队列的数组、队头位置、队尾位置
成员函数:构造函数、析构函数、拷贝构造函数、入队、出队、清空队列、判空、判满、求队列大小
头文件
#ifndef QUEUE_H
#define QUEUE_H
#include
using namespace std;
class queue
{
private:
//存放队列的数组
int *data;
//队头位置下标
int head;
//队尾位置下标
int tail;
public:
//构造函数
queue():data(new int[5]),head(tail=0),tail(head=0)
{
cout<<"无参构造函数"<
功能函数
#include "queue.h"
//判空
int queue::queue_empty(int *data)
{
if(nullptr == data)
{
cout<<"不合法!"<
主函数
#include "queue.h"
int main()
{
//实例化对象
queue q1;
int d[5];
//入队
q1.queue_in(1,d);
q1.queue_in(2,d);
q1.queue_in(3,d);
q1.queue_show(d);
q1.queue_in(4,d);
q1.queue_in(10,d);
q1.queue_in(13,d);
q1.queue_show(d);
q1.queue_in(16,d);
//遍历
q1.queue_show(d);
//出队
q1.queue_out(d);
q1.queue_show(d);
//求队列大小
int len =q1.queue_size(d);
cout<<"len = "<