main.cpp

#include<iostream>

#include<string>

#include"Stack.hpp"

using namespace std;

void test1(){                     //测试

Stack<int> s1;

s1.Push(1);

s1.Push(2);

s1.Push(3);

s1.Push(4);

s1.Pop();

s1.Pop();

s1.Pop();

s1.Pop();

}

int main(){

test1();

return 0;

}

Stack.hpp

#pragma once

template <class T>            //使用模板可以实现多种类型栈操作

class Stack{

private:

T* _array;           //数据结构

size_t _capacity;     //入栈个数

int _topindex;     //栈空/满的判断标准

public:

Stack()

:_array(0)

, _capacity(0)

, _topindex(-1)

{}

void Push(const T& x){           //入栈

if (_topindex + 1 == _capacity){     //判断是否需要开辟空间

_capacity = 2 * _capacity + 3;

T* tmp = new T(_capacity);

if (tmp == NULL){

cout << "failed new" << endl;

exit(-1);

}

memcpy(tmp, _array, sizeof(T)*(_topindex + 1)); //内置类型使用

delete _array;                                 // memcpy ,自定义

_array = tmp;                                 //使用for循环逐个拷贝

}                                                    //注意深拷贝和前拷贝

_array[++_topindex] = x;

}

void Pop(){                          //出栈

if (_topindex > -1){

cout << _array[_topindex] << endl;

_topindex--;

}

}

bool empty(){           //清空栈

return _topindex = -1;

}

};

转载于:https://blog.51cto.com/molova/1705182

c++:用顺序表实现简单的栈相关推荐

  1. 顺序表实现简单的【扑克牌】

    目录 1. 准备一张牌 2. 拿一副牌出来 3.洗牌(打乱牌的顺序) 4.开始发牌 代码gitee链接   20220711/src · 雷晓恒/Java - 码云 - 开源中国 (gitee.com ...

  2. 用顺序表实现学生信息管理系统

    用顺序表实现学生信息管理系统 问题描述: 定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息: (2) 逐个显示学生表中所有学生的相关信息 ...

  3. 约瑟夫环c语言代码顺序存储,顺序表实现约瑟夫环地问题,C语言.doc

    顺序表实现约瑟夫环地问题,C语言 计算机科学与工程学院 PAGE PAGE 2 <算法与数据结构>试验报告 计算机科学与工程学院 <算法与数据结构>试验报告[一] 专业班级 1 ...

  4. 顺序表实现学生管理系统

    定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表,使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息: (2) 逐个显示学生表中所有学生的相关信息: (3) 根据姓名进行查找,返回此 ...

  5. 顺序表讲解和顺序表实现增删查改

    前言 顺序表是一种参见的数据结构 特点:类似数组的储存,需要预先开辟空间已备数据插入.(1)同时顺序表也因此会存在和数组同样的问题(例如:越界)(2)同时因为其类似与数组的结构给二分查找这种算法提供了 ...

  6. 栈——用顺序表实现栈操作

    一.线性表特点 线性表:由0个或者多个数据元素组成的有限序列 除了第一个节点(头节点),都有前驱节点 除了最后一个节点(尾节点),都有后继节点 线性表主要由顺序存储结构或者链式存储结构 一般线性表:可 ...

  7. 顺序表实现栈相关操作

    1.栈的相关概念     栈是一种特殊的线性表, 其中只允许在固定的一端进行插入和删除元素.进行数据插入和删除的一端叫做栈顶, 另一端成为栈底. 不含任何元素的栈称为空栈, 栈又称为先进先出的线性表. ...

  8. 【数据结构】顺序表实现超详解(保姆级教程)

    [数据结构] 目录 ​ 前言 顺序表 接口实现 各项功能 接口详解 顺序表初始化 顺序表释放 顺序表展示 顺序表容量检查 顺序表数据尾插 顺序表数据头插 顺序表数据前删 顺序表数据尾删 顺序表数据查找 ...

  9. 用C语言写的一个顺序表实现图书馆书籍管理

    Function: 增add_book() 删delete_book() 改modify_book() 查check_book() 实现吧! **************************/ # ...

最新文章

  1. CENTOS/RHEL 7 系统中设置SYSTEMD SERVICE的ULIMIT资源限制
  2. 新OpenSUSE的树莓派镜像
  3. mysql 为游标赋值_mysql 存储过程之游标
  4. 关于网页的一些小知识点
  5. [BZOJ2502]清理雪道解题报告|带下界的最小流
  6. Windows下使用ffmpeg为视频添加字幕
  7. leetcode 779. K-th Symbol in Grammar | 779. 第K个语法符号(Java)
  8. SAP Spartacus 3.0 的一些变化
  9. Python3 爬虫学习笔记 C03 【Ajax 数据爬取】
  10. Oracle终于安装完成了,开始DBA学习之路
  11. Active Diretory 全攻略(六)--文件夹权限与共享(2)
  12. 如果我是推荐算法面试官,我会问哪些问题?
  13. 一个项目如何编译多个不同签名、包名、资源等,的apk?
  14. Egret入门学习日记 --- 第十七篇(书中 7.4~8.2节 内容)
  15. Cookie和Session有什么区别?
  16. php手册 mac版,PHP中文手册for mac-PHP中文手册Mac版下载 V1.0.2-PC6苹果网
  17. dirent.h使用详解
  18. nProtect GameGuard 的破解
  19. 基于hexo搭建github的个人静态博客
  20. 华为鸿蒙智慧屏和手机,【荣耀智慧屏评测】鸿蒙初体验:荣耀智慧屏跨系统交互构建新生态(全文)_荣耀 智慧屏_手机评测-中关村在线...

热门文章

  1. android开机自动运行程序
  2. len(x) 击败 x.len(),从内置函数看 Python 的设计思想
  3. 10.1.5 布局优化利器之 Hierarchy Viewer
  4. AltiumDesigner 热焊盘铺铜
  5. MYSQL max_user_connections back_log max_connections参数和Max_used_connections
  6. Struts2 原理
  7. MPLS *** Trouble Shooting 笔记
  8. Ubuntu 12.04中文输入法的安装
  9. javascript刷新页面的集中办法
  10. Python中通过lambda抛异常的奇技淫巧