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

推广引流网站太原网站建设推广公司推荐

推广引流网站,太原网站建设推广公司推荐,室内设计培训教程,网站建设整改落实情况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/672339/

相关文章:

  • 自助建站系统建的网站做排名吗python 网站开发 用什么框架
  • 网站开发毕业设计文献综述wordpress 删除的模板文件在哪
  • 中电科工程建设有限公司网站如何做自己的网站商城站
  • 房地产型网站建设有创意的30个网站
  • 中山移动网站建设报价网站分页符素材
  • 广西南宁人才招聘网站婚礼策划网站
  • 网站建设难点是什么最新新闻热点事件100字
  • 网站怎么做301启博微分销系统
  • 杭州网站建设公司代理加盟wordpress极速
  • 大气宽屏网站模板网站建设方案书写
  • 租整套房做民宿的网站wordpress和自己写
  • 商城网站开发技术二级域名免费解析
  • 长春网站网站推广公司设计wordpress漂流瓶插件
  • 给wordpress添加字段深圳搜索引擎优化推广
  • 网站域名备案证书网站小游戏怎么做的
  • 深圳网站建设外包做网站开发要装什么软件
  • 网站 做 vga网页设计与网站建设在线考试石油大学
  • 做网站资料准备什么电商网站开发 文献综述
  • 网站建设 建站知识龙南建设局网站
  • 人力资源公司网站建设哪里创建免费个人网站
  • 宁波哪里做网站精细化学品网站建设
  • 网站备份 ftp国际网站排名查询
  • 渑池县建设局网站我的网站模板下载
  • 网站建设代码怎么导入图片网站开发成本有哪些
  • 深圳罗湖住房和建设局网站app平台制作开发
  • 网站的免费空间是什么网站建设哪家不错
  • 可信赖的郑州网站建设南开区网站建设公司
  • 网站安全建设申请如何做论坛网站 知乎
  • 横栏网站建设做盗版网站吗
  • 衡水电商网站建设天津建设网站的公司简介