当前位置: 首页 > news >正文

做网站一月工资美食网站开发的背景

做网站一月工资,美食网站开发的背景,靓号网建站,百度seo关键词报价stack栈类 stack.h #ifndef STACK_H #define STACK_H #include <iostream> #include<string> using namespace std; //自行封装一个栈的类&#xff0c;包含私有成员属性:栈的数组、记录栈顶的变量 //成员函数完成: //构造函数、析构函数、拷贝构造函数 //入栈、出…

stack栈类

stack.h

#ifndef STACK_H
#define STACK_H
#include <iostream>
#include<string>
using namespace std;
//自行封装一个栈的类,包含私有成员属性:栈的数组、记录栈顶的变量
//成员函数完成:
//构造函数、析构函数、拷贝构造函数
//入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小template <class T>
class Mystack
{
private:T *arr;int top;int size;
public://无参构造函数Mystack(){this->size = 100;this->arr = new T[size];this->top = -1;}//有参构造函数Mystack(int arrnum){this->size = arrnum;this->arr = new T[arrnum];this->top = -1;}//拷贝构造函数Mystack(const Mystack &stk){this->size = stk.size;cout<<this->size << " " << stk.size<<endl;this->arr = new T[size];for(int i = 0 ; i<stk.top ; i++){*(arr+i) = *(stk.arr+i);}this->top = stk.top;cout<<"1top:"<<this->top <<" " << stk.top<<endl;}//拷贝赋值函数Mystack& operator=(const Mystack &stk){this->size = stk.size;this->arr = new T[size];for(int i = 0 ; i<stk.top ; i++){*(arr+i) = *(stk.arr+i);}this->top = stk.top;return *this;}//析构函数~Mystack(){delete arr;}int getTop() const;//判空bool empty();//判满bool full();//入栈void push(T elem);//出栈void pop();//获取栈顶元素T& topelem();//求栈大小int stksize();
};
#endif // STACK_H

main.cpp

#include "stack.cpp"
//int类型
void test()
{cout<<"stk1:"<<endl;Mystack<int> stk(100);for(int i = 0 ; i<10;i++)stk.push(i+1);cout<<"stk的栈顶元素:"<<stk.topelem()<<endl;cout<<"stk的大小:"<<stk.stksize()<<endl;stk.pop();cout<<"stk的栈顶元素:"<<stk.topelem()<<endl;cout<<"stk的大小:"<<stk.stksize()<<endl;cout<<"stk2:"<<endl;Mystack<int> stk2(stk);cout<<"stk2的栈顶元素:"<<stk2.topelem()<<endl;cout<<"stk2的大小:"<<stk2.stksize()<<endl;stk2.pop();cout<<"stk2的栈顶元素:"<<stk2.topelem()<<endl;cout<<"stk2的大小:"<<stk2.stksize()<<endl;
}//string类型
void test2()
{Mystack<string> stk(10);stk.push("1");stk.push("2");stk.push("3");stk.push("4");stk.push("5");stk.push("6");cout<<stk.topelem()<<endl;cout<<stk.stksize()<<endl;stk.pop();cout<<stk.topelem()<<endl;cout<<stk.stksize()<<endl;}
int main()
{test();//test2();return 0;
}

queue.cpp

#include"stack.h"template <class T>
int Mystack<T>::getTop() const
{return top;
}template <class T>
bool Mystack<T>::empty()
{if(top == -1)return true;return false;
}template <class T>
bool Mystack<T>::full()
{if(top == size-1)return true;return false;
}
//入栈
template <class T>
void Mystack<T>::push(T elem)
{if(full())return;top = top + 1;this->arr[top] = elem;}
//出栈
template <class T>
void Mystack<T>::pop()
{if(empty())return;this->top--;
}//获取栈顶元素
template <class T>
T& Mystack<T>::topelem()
{return *(arr+top);
}//求栈大小
template <class T>
int Mystack<T>::stksize()
{return this->top+1;
}

queue队列

queue.h

#ifndef QUEUE_H
#define QUEUE_H
#include <iostream>
//自行封装一个循环顺序队列的类,包含私有成员属性:存放队列的数组、队头位置、队尾位置
//成员函数完成:构造函数、析构函数、拷贝构造函数、入队、出队、清空队列、判空、判满、求队列大小
using namespace std;
template <class T>
class Queue
{
private:T *arr;int head;int tail;int size;
public://无参构造Queue();//有参构造Queue(int elemnum);//拷贝构造Queue(const Queue &q);//拷贝赋值函数void operator=(Queue &q);//析构函数~Queue();//判空bool empty();//判满bool full();//入队void push(T elem);//出队void pop();//清空队列void clear();//求队列大小int queuesize();//返回最后一个元素T* back();//返回第一个元素T* front();
};
#endif // QUEUE_H

main.cpp

#include"queue.cpp"void test()
{Queue<int> q1(20);for(int i = 0;i < 10;i++){q1.push(i+1);}cout<<"第一个元素: "<<*q1.front()<<endl;cout<<"最后一个元素: "<<*q1.back()<<endl;q1.pop();cout<<"第一个元素: "<<*q1.front()<<endl;cout<<"最后一个元素: "<<*q1.back()<<endl;Queue<int> q2(q1);cout<<"q2的第一个元素: "<<*q2.front()<<endl;cout<<"q2的最后一个元素: "<<*q2.back()<<endl;Queue<int> q3;q3 = q1;cout<<"q3的第一个元素: "<<*q3.front()<<endl;cout<<"q3的最后一个元素: "<<*q3.back()<<endl;
}
int main()
{test();return 0;
}

queue.cpp

#include"queue.h"
//无参构造
template <class T>
Queue<T>::Queue():arr(new T[100]),head(0),tail(0),size(100)
{
}
//有参构造
template <class T>
Queue<T>::Queue(int elemnum):arr(new T[elemnum]),head(0),tail(0),size(elemnum)
{
}
//拷贝构造
template <class T>
Queue<T>::Queue(const Queue &q):arr(new T[q.size]),head(q.head),tail(q.tail),size(q.size)
{int i = q.head;while(i != q.tail){*(this->arr+i) = *(q.arr+i);i = (i+1+q.size)%q.size;}
}
//析构函数
template <class T>
Queue<T>::~Queue()
{delete arr;
}
//拷贝赋值函数
template <class T>
void Queue<T>::operator=(Queue &q)
{arr = new T[q.size];head = q.head;tail = q.tail;size = q.size;int i = q.head;while(i != q.tail){*(this->arr+i) = *(q.arr+i);i = (i+1+q.size)%q.size;}return *this;
}
//判空
template <class T>
bool Queue<T>::empty()
{return head == tail;
}
//判满
template <class T>
bool Queue<T>::full()
{return  (tail+1)%size == head;
}//入队
template <class T>
void Queue<T>::push(T elem)
{if(full())cout<<"队满"<<endl;else{arr[tail] = elem;tail=(tail+1)%size;}
}
//出队
template <class T>
void Queue<T>::pop()
{if(empty()){}elsehead=(head+1)%size;
}
//清空队列
template <class T>
void Queue<T>::clear()
{head = 0;tail = head;
}
//求队列大小
template <class T>
int Queue<T>::queuesize()
{return (tail+size-head)%size;
}
//返回最后一个元素
template <class T>
T* Queue<T>::back()
{if(empty()){T *elem = nullptr;cout<<"空队列"<<endl;return elem;}elsereturn arr+(tail+size-1)%size;
}
//返回第一个元素
template <class T>
T* Queue<T>::front()
{if(empty()){T *elem = nullptr;cout<<"空队列"<<endl;return elem;}elsereturn arr+head;
}

http://www.yayakq.cn/news/363500/

相关文章:

  • 移动商城个人中心哈尔滨关键词优化效果
  • 门户网站案例分析制作一个网站需要哪些步骤
  • 深圳网络营销网站设计专做茶叶的网站
  • 建网站的客户微网站不能分享朋友圈
  • 企业做什么需要有网站wordpress模板如何安装教程视频教程
  • 苏州住房和城乡建设局网站首页百度快照首页
  • 做网站阳泉购物网站创业时是如何做宣传的
  • 企业网站的建设对于网络品牌的塑造作用做石材网站步骤
  • 在线教育网站制作wordpress侧边二级导航菜单
  • 捷克网站后缀曲阜网架公司
  • 新媒体广告代理加盟seo是网站搜索引擎上的优化
  • 河北省建设厅办事大厅网站做服装设计有什么网站可以参考
  • 一女被多男做的视频网站如何外贸网站推广
  • 网站建设岗位的任职资格如何远程登录网站服务器
  • 山东富国建设投资有限公司网站wordpress 数据库管理
  • 商务网站的推广方法有哪些如何在建设银行网站预约纪念币
  • 百度做网站电话多少wordpress默认排序
  • 让蜘蛛不抓取网站的文件夹做网站具体流程
  • 网站不符合个人备案性质上传设计作品的网站
  • 肇庆专业网站建设服务惠州专业网站制作公司
  • 就业创业网站建设做淘宝推广开网站合适
  • 天津网站建设招聘广州网站建设骏域环保地板
  • 网站源码是html怎么转成php网站国内做的比较简洁的网站
  • dw淘宝网页制作视频教程咸阳做网站优化
  • 商融交通建设工程有限公司网站互联网保险发展趋势
  • 网站年费怎么做分录建设网站时的常见故障分类
  • 营口网站设计用户体验设计软件
  • 六安网站制作哪里有万网创始人
  • php网站建设论文抖音小程序推广
  • 个旧市城乡建设局网站设计一个简单的网络规划方案