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

宝鸡哪里可以做网站产品推广网站哪个好

宝鸡哪里可以做网站,产品推广网站哪个好,免费空间+网站空间+虚拟主机,做网站怎么给图片加连接栈的C顺序表实现 #include<iostream> #include<stdexcept> using namespace std; //模板声明&#xff0c;表明Stack类是一个通用的模板&#xff0c;可以用于存储任何类型的元素T template<typename T> //栈的声明 //Stack类的声明&#xff0c;表示一个栈的…
栈的C++顺序表实现

#include<iostream>
#include<stdexcept>

using namespace std;
//模板声明,表明Stack类是一个通用的模板,可以用于存储任何类型的元素T
template<typename T>

//栈的声明
//Stack类的声明,表示一个栈的数据结构
class Stack {
private://定义私有(成员变量)
    T* data;//用于存储栈中的元素,它是一个指向类型为T的指针
    int size;//用于记录栈中元素的数量
    int capacity;//用于记录栈的容量
    void resize();//用于在栈容量不足时进行扩容
public://定义公共
    //Stack()是构造函数,用于初始化栈的成员变量。它创建一个新的栈,并分配一个容量为10的数组来存储元素
    Stack():data(new T[10]),size(0),capacity(10){}
    ~Stack();//析构函数,用于释放栈所用的内存
    void push(T element);//公共函数,用于将一个新元素压入栈顶
    T pop();//用于从栈顶弹出一个元素
    T top() const;//用于获取栈顶的元素,但不弹出它
    int getSize() const;//用于获取栈中元素数量
};
//模板声明,表明resize函数是一个通用的模板,可以用于处理任何类型的元素T
template<typename T>
//栈的扩容
void Stack<T>::resize() {
    int newCapacity = capacity * 2;//计算新的容量,并将其赋值给newCapacity变量,新的容量是当前容量的两倍
    T* newData = new T[newCapacity];//创建新数组newData,用于存储新扩容后的元素,新数组的大小为新的容量
    for (int i = 0; i < size; ++i) {
        newData[i] = data[i];//复制栈中元素到新数组
    }
    delete[] data;//释放旧数组data所占用的内存空间
    data = newData;//newData赋值给data,使其成为栈的新存储数组
    capacity = newCapacity;//更新了栈的容量为新的容量
}
//栈的销毁
template<typename T>
Stack<T>::~Stack() {//析构函数的声明,用于在对象销毁时执行清理操作
    delete[] data;//释放了动态分配的数组的data所占用的内存空间。
}

//入栈
template<typename T>
void Stack<T>::push(T element) {
    if (size == capacity) {//栈满,调用resize函数进行扩容
        resize();
    }
    data[size++] = element;//element赋值给data的size位置,并将size的值+1,以表示栈中元素数量增加
}

//出栈
template<typename T>
T Stack<T>::pop() {
    if (size == 0) {
        throw std::underflow_error("Stack is empty");//如果栈空,抛出异常
    }
    return data[--size];//不空,栈大小-1,并返回data数组中栈顶元素的值
}

//获取栈顶元素
template<typename T>
T Stack<T>::top() const{
    if (size == 0) {
        throw std::underflow_error("Stack is empty");//如果栈空,抛出异常
    }
    return data[size-1];//不空,返回data数组中的最后一个元素的值,即栈顶元素。
}

template<typename T>
int Stack<T>::getSize() const {
    return size;
}

int main() {
    Stack<int> st;
    st.push(4);
    st.push(7);
    st.push(13);
    cout << st.top() << endl;
    st.push(17);
    cout << st.top() << endl;
    st.pop();
    st.pop();
    cout << st.top() << endl;
    cout << st.getSize() << endl;

    return 0;
}

http://www.dtcms.com/wzjs/86347.html

相关文章:

  • 没有建设的网站不能申请微信支付吗哪有培训seo
  • 济南建站详情公司网站设计与制作
  • 我要自学网首页google关键词优化排名
  • 券优惠网站如何做市场营销网络
  • 淘宝网站策划怎么做百度搜索名字排名优化
  • 天津外贸营销型网站建设公司域名是什么意思呢
  • 做网站需要交维护费么建材企业网站推广方案
  • 辽宁省建设工程造价管理协会网站seo报告
  • 怎么查店名是否被注册企业seo网络营销
  • 网站首页页面百度下载安装
  • 网站 html5培训课
  • 长沙景点视频免费推广seo
  • 贵州省城乡建设厅网站首页网店培训骗局
  • 哪里学网站开发好软件推广怎么赚钱
  • 泉州做网站的seo的基本内容
  • 怎么做化妆品网站内容规划石家庄
  • 自定义优定软件网站建设发软文是什么意思
  • 安丘网站制作2345网址导航桌面版
  • 网站优化都是怎么做的灰色广告投放平台
  • 帮客户做网站的公司如何推广宣传一个品牌
  • kali钓鱼网站制作网站收录批量查询
  • 一个空间做多个网站企业宣传推广方案
  • 连锁店销售管理系统奇零seo赚钱培训
  • wordpress微信分享二维码生成长沙seo公司排名
  • 做网站上海微信如何投放广告
  • 徐州营销型网站建设怎么免费自己做推广
  • 旅游网站排名排行榜搜索量最大的关键词
  • 欧美真人做免费网站郑州百度推广公司电话
  • 做贸易进出口要什么网站平台外贸网站搭建
  • 中国建设银行山西分行招聘网站网站流量来源