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

木蚂蚁网站正在建设中聚美优品网站建设项目规划书

木蚂蚁网站正在建设中,聚美优品网站建设项目规划书,PS网站设计,网站开发的单价c栈 栈代码用线性表实现栈用链表实现栈 栈 栈:先进后出 只对栈顶元素进行操作,包括新元素入栈、栈顶元素出栈和查看栈顶元素(只支持对栈顶的增、删、查)。 代码 下述代码实现了栈及其接口 包括对栈顶的增、删、查以及查看栈的大…

c++栈

    • 代码
      • 用线性表实现栈
      • 用链表实现栈

栈:先进后出
只对栈顶元素进行操作,包括新元素入栈、栈顶元素出栈和查看栈顶元素(只支持对栈顶的增、删、查)。

代码

下述代码实现了栈及其接口
包括对栈顶的增、删、查以及查看栈的大小

用线性表实现栈

#include <iostream>
using namespace std;template<typename T>class Stack{
private:T *data;int size;int capacity;void resize();public:Stack() : data(new T[capacity]),size(0),capacity(10){}~Stack();void push(T element);T pop();T top() const;int getSize() const;
};template<typename T>
void Stack<T>::resize(){int newCapacity = 2*capacity;T *newData = new T[newCapacity];for(int i = 0; i < size; i++){newData[i] = data[i];}delete[] data;data = newData;capacity = newCapacity;
}template<typename T>
Stack<T>::~Stack(){delete[] data;
}template<typename T>
void Stack<T>::push(T element){if(size == capacity){resize();}data[size++] = element;
}template<typename T>
T Stack<T>::pop(){if(size == 0){throw std::underflow_error("Stack is empty");}return data[--size];
}template<typename T>
T Stack<T>::top() const{if(size == 0){throw std::underflow_error("Stack is empty");}return data[size-1];
}template<typename T>
int Stack<T>::getSize() const{return size;
}
int main()
{Stack<int> st;st.push(1);st.push(2);st.push(3);cout << st.getSize() << endl;cout << st.top() << endl;st.pop();cout << st.getSize() << endl;cout << st.top() << endl;	return 0;
}

用链表实现栈

#include <iostream>
using namespace std;template<typename T>class Stack{
private:struct Node{T data;Node *next;Node(T d) : data(d),next(NULL){}};Node *head;int size;public:Stack() : head(NULL), size(0){}~Stack();void push(T element);T pop();T top() const;int getSize() const;
};template<typename T>
Stack<T>::~Stack(){while(head){Node *temp = head;head = head->next;delete temp;}
}template<typename T>
void Stack<T>::push(T element){Node *newNode = new Node(element);newNode->next = head;head = newNode;size++;
}template<typename T>
T Stack<T>::pop(){if(head == NULL){throw std::underflow_error("Stack is empty");}T result = head->data;Node *temp = head;head = head->next;delete temp;size--;return result;
}template<typename T>
T Stack<T>::top() const{if(head == NULL){throw std::underflow_error("Stack is empty");}return head->data;
}template<typename T>
int Stack<T>::getSize() const{return size;
}
int main()
{Stack<int> st;st.push(1);st.push(2);st.push(3);cout << st.getSize() << endl;cout << st.top() << endl;st.pop();cout << st.getSize() << endl;cout << st.top() << endl;	}

于 2024-01-26 第一次整理编写

学习时整理,不当之处烦请指正
码字不易,留个赞再走吧

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

相关文章:

  • 合肥外贸网站建设iis建立网站
  • 沈阳建设网站公司广州建设集团股份有限公司
  • 成都APP,微网站开发wordpress中文博客
  • 门户网站建设工作讲话怎么找网站帮我做推广
  • 怎么做网站才能吸引人电脑做ppt模板下载网站
  • 网站制作成功案例上海搬家公司电话附近
  • 网站后台的用户名重庆铜梁网站建设费用
  • 北京门户网站制作公司长沙房产网最新楼盘地图
  • 个人网站设计目的h5app开发框架
  • 企业网站的可信度建设包括网页设计如何添加视频
  • 怎么提交网站网站建设的色彩搭配
  • 深圳网站建设服务比较便宜flash网站优缺点
  • pc做网站服务器吗wordpress子目录建站
  • 网站开发工资多少钱一个月广州网络哪家比较好
  • 网站欢迎界面源码软件开发模型不包括
  • 青海青海西宁网站建设网站设计论文结论
  • 大学有吗网站建设wordpress 目录权限
  • 网站新闻置顶怎么做wordpress 静态主页
  • 网站用动态图片做背景怎么写自己做的网站在浏览器上显示不安全
  • 网站欢迎页面代码深圳市前十的互联网推广公司
  • Wordpress变装安卓优化大师官方下载
  • 网站开发和网页设计的区别合肥房价查询网
  • 做集团网站一年多少钱昆明网站关键词优化
  • 如何调整网站板块位置网络营销实验报告
  • 企业门户网站模板 下载wordpress网站压缩
  • html5微网站源码wordpress yuti
  • 网站建设实验原理北京高端网站开发公司
  • 麻章手机网站建设主机做网站服务器
  • 重庆学校网站推广蜂蜜做的好网站或案例
  • 外包网站平台网页设计费用一般收多少合适