南京网站开发南京乐识好,科技强国形势与政策论文,手机制作软件,网站建设岗位招聘1 自行封装一个栈的类#xff0c;包含私有成员属性#xff1a;栈的数组、记录栈顶的变量
成员函数完成#xff1a;构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小
头文件stack.c
#ifndef STACK_H
#define STACK_H
#in…1 自行封装一个栈的类包含私有成员属性栈的数组、记录栈顶的变量
成员函数完成构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小
头文件stack.c
#ifndef STACK_H
#define STACK_H
#include iostream
#include cstringusing namespace std;
class stack
{
private:int data[128];int top;
public://构造函数stack();//析构函数~stack();//拷贝构造函数stack(const stack other);//入栈int stack_push(int e);//出栈int stack_pop();//清空栈void stack_clear();//判空bool stack_empty();//判满bool stack_full();//获取栈顶元素int stack_top();//求栈的大小int stack_size();
};
#endif // STACK_H源文件
#includestack.h
//构造函数
stack::stack()
{cout构造函数endl;
}
//析构函数
stack::~stack()
{delete[] data;cout析构函数endl;
}
//拷贝构造函数
stack::stack(const stack other)
{cout拷贝构造函数endl;
}
//入栈
int stack::stack_push(int e)
{top;data[top]e;cout入栈成功endl;return 0;
}
//出栈
int stack::stack_pop()
{top--;cout出栈成功endl;return 0;
}
//清空栈
void stack::stack_clear()
{top-1;return;
}
//判空
bool stack::stack_empty()
{return top-1;
}
//判满
bool stack::stack_full()
{return top127;
}
//获取栈顶元素
int stack::stack_top()
{return data[top];
}
//求栈的大小
int stack::stack_size()
{return top1;
}测试文件
#includestack.hint main()
{stack s1;s1.stack_push(1);s1.stack_push(2);s1.stack_pop();cout s1.data[top]s1.stack_top() endl;return 0;
}运行结果 2 自行封装一个循环顺序队列的类包含私有成员属性存放队列的数组、队头位置、队尾位置
成员函数完成构造函数、析构函数、拷贝构造函数、入队、出队、清空队列、判空、判满、求队列大小 头文件
#ifndef QUEUE_H
#define QUEUE_H
#include iostream
using namespace std;class queue
{
private:int data[128];int front0;int tail0;
public://构造函数queue();//析构函数~queue();//拷贝构造函数queue(const queue other );//入队int queue_push(int e);//出队int queue_pop();//清空队列void queue_delete();//判空bool queue_empty();//判满bool queue_full();//求队列的大小int queue_size();//遍历void queue_show();
};#endif // QUEUE_H源文件
#includequeue.h//构造函数
queue::queue()
{cout构造函数endl;
}
//析构函数
queue::~queue()
{delete[] data;cout析构函数endl;
}
//拷贝构造函数
queue::queue(const queue other )
{int indexfront;while(index!tail){data[index]other.data[index];index(index1)%128;}cout拷贝构造函数endl;
}
//入队
int queue:: queue_push(int e)
{if(queue_full()){return -1}data[tail]e;tail(tail1)%128;return 0;}
//出队
int queue::queue_pop()
{if(queue_empty()){return -1;}front(front1)%128;return 0;
}
//清空队列
void queue::queue_delete()
{tailfront0;
}
//判空
bool queue::queue_empty()
{return fronttail;
}
//判满
bool queue::queue_full()
{return (tail1)%128front;
}
//求队列的大小
int queue::queue_size()
{return (tail-front128)%128;
}//遍历
void queue::queue_show()
{for(int ifront;i!tail;i(i1)%128){coutdata[i] ;}
}测试文件
#includequeue.hint main()
{queue q1;q1.queue_push(520);q1.queue_push(1314);q1.queue_pop();coutq1的大小为q1.queue_size()endl;q1.queue_show();return 0;
}运行结果 思维导图