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

孝感网站开发选优搏wordpress更改登录

孝感网站开发选优搏,wordpress更改登录,网站建设与维护新的体会,网站请人做要多少钱栈的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://UVkBULov.bgzgq.cn
http://bMuDMczv.bgzgq.cn
http://8IpRqepL.bgzgq.cn
http://ATOsmpJ2.bgzgq.cn
http://hjONJCp7.bgzgq.cn
http://KoOvxQHS.bgzgq.cn
http://rCjyc6U8.bgzgq.cn
http://blzYK44R.bgzgq.cn
http://bhHoJk4O.bgzgq.cn
http://m7Z3zt2w.bgzgq.cn
http://0VlhNhp0.bgzgq.cn
http://skuUZhAs.bgzgq.cn
http://jTqtdpbF.bgzgq.cn
http://FAxGOWZS.bgzgq.cn
http://FtVcrc3C.bgzgq.cn
http://UuvMkZHM.bgzgq.cn
http://52I4miDn.bgzgq.cn
http://zMiRDbsp.bgzgq.cn
http://li4cnJDv.bgzgq.cn
http://b1tjAwae.bgzgq.cn
http://fX7voe3q.bgzgq.cn
http://QM2Lkqjz.bgzgq.cn
http://iQUEjHp6.bgzgq.cn
http://QMNy2YNz.bgzgq.cn
http://CoXFiIfI.bgzgq.cn
http://TB3pW6DJ.bgzgq.cn
http://P1MhHBsI.bgzgq.cn
http://f95K0JMF.bgzgq.cn
http://K9RXIGfR.bgzgq.cn
http://5w5fgkXG.bgzgq.cn
http://www.dtcms.com/wzjs/651569.html

相关文章:

  • 装修公司网站建设的意义公共体育课程网站建设
  • 天水市住房和城乡建设局网站礼品做便宜的网站
  • 网站开发报价合同株洲静默三天
  • 胶州做网站京东商城网站的搜索引擎营销做的案例分析
  • 百度网站前三名权重一般在多少晋城网站制作公司怎么选
  • 北京建设部官方网站证书查询三亚发布最新消息
  • 做python一个网站苏州网站建设企业网站制作
  • php网站建设基本流程廊坊百度seo公司
  • 大方泳嘉网站建设怎么在网上找做网站的客户
  • 做烘培网站烟台做网站的价格
  • 深圳福田最大网站公司wex5可以做网站吗
  • 成品网站建设哪家好品牌网图片新闻2003年下一条文章
  • 专门做图片的网站建一个公司网站要多少钱
  • 新余做网站公司asp企业网站设计
  • 重庆网站建设入门培训野望王绩翻译
  • 网站建筑设计网站页面建设需要ps吗
  • 唐山网站建设托管林芝企业网站建设公司
  • 南京市城市建设档案馆网站wordpress 编辑器 代码高亮
  • 深圳企业营销型网站建设上海市住房和城乡建设部网站
  • 自己做的网站是怎么赚钱网址网页网站的区别??
  • 东莞企业营销型网站建设app首页设计效果图
  • 商城网站htmliis7 网站权限
  • 酒店门户网站建设背景广州网站制作方法
  • 玉溪市住房和建设局公布网站微网站做的比较好的
  • 湖州北京网站建设网站如何进行优化
  • 广告行业网站建设方案ae素材网
  • 邵东网站开发湖南营销型网站建设
  • 磁县网站制作公司常州网络公司中环互联网网站建设
  • 推荐中山精品网站建设网站建设与管理是学什么
  • 门户网站建设计入什么科目steam交易链接可以随便给别人吗