我的STL之旅 MyStack

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

/*
    push(int item)
    int pop()
    top() 返回stact中的下一个元素
    s.top()=12;
    设置顶层元素
    返回对其引用
*/
const int N=10;
const int AN=5;
int size;//记录大小
int *stack;//存储数据
int top;//记录顶端元素 

void push(int item)
{
    if(top==size){
        int *a=new int[size+AN];
        for(int i=0;i<size;i++){
            a[i]=stack[i];
        }
        stack=a;
    }
    stack[top++]=item;
}

int pop()
{
    if(top>0)
    return stack[--top];
}

int &ttop()
{
    if(top==size){
    int *a=new int[size+AN];
    for(int i=0;i<size;i++){
        a[i]=stack[i];
    }
    stack=a;
    }
    return stack[top++];
}

int main()
{
    top=0;
    stack=new int[N];
    size=N;
    for(int i=0;i<2*N;i++)
    {
        push(i);
    }
    cout<<"top: "<<top<<endl;
    cout<<"pop() "<<pop()<<endl;
    ttop()=77;
    for(int i=0;i<top;i++){
        cout<<stack[i]<<" ";
    }
    return 0;
} 
时间: 2024-10-10 13:13:03

我的STL之旅 MyStack的相关文章

我的STL之旅

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> //#include<list> using namespace std; //only for int use; /* class MyList{ int *my; MyList(); int back();//返回最后一个元素 int front();//返回第一个元素 void clear();

蓝桥杯 BASIC 28 Huffuman树(STL_Vector)

[思路]:利用vector的动态特性和相关操作很容易实现.可以算第一次真正用STL做题,算开始了我的STL之旅吧. [AC代码]: #include <iostream> #include <algorithm> #include <cstdio> #include <vector> using namespace std; #define MAX 100+10 bool Comp(const int &a,const int &b) { r

数据结构(DataStructure)与算法(Algorithm)、STL应用

catalogue 0. 引论 1. 数据结构的概念 2. 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 2.3.1 二叉树 3. 物理结构实例 3.1 链表 3.1.1 单向线性链表 3.1.2 单向循环链表 3.1.3 双向线性链表 3.1.4 双向循环链表 3.1.5 数组链表 3.1.6 链表数组 3.1.7 二维链表 3.2 顺序存储 4. 算法 4.1 查找算法 4.2 排序算法 0. 引论 0x1: 为什么要学习数据结构 N.沃思(Niklaus  Wirth)教授提

C++ Standard Template Library STL(undone)

目录 1. C++标准模版库(Standard Template Library STL) 2. C++ STL容器 3. C++ STL 顺序性容器 4. C++ STL 关联式容器 5. C++ STL 容器适配器 6. C++ STL算法 7. C++ STL边界限制 1. C++标准模版库(STL) STL就是Standard Template Library,标准模板库.从根本上说 1. STL是一些"容器"集合 2. STL也是算法和其他一些组件的集合 3. 这里的&quo

STL ——vector 学习

STL简介 C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 stacks(栈)等.  C++ STL 提供给程序员以下三类数据结构的实现: 标准容器类   顺序性容器  vector 从后面快速的插入与删除,直接访问任何元素  deque 从前面或后面快速的插入与删除,直接访问任何元素 list 双链表,从任何地方快速插入与删除   关联容器  

【STL】栈stack

栈stack 头文件与定义 #include<stack> stack<long long>mystack;    //以下以mystack为例 用法 1.将元素a入栈:mystack.push(a); 2.将栈顶元素弹栈/出栈:mystack.pop(); 3.判断栈是否为空:mystack.empty() 4.栈的长度:cout<<stack.size(); 5.访问栈顶元素:cout<<stack.top(); 注意事项 1.在出栈或者访问栈顶元素之前

【C++探索之旅】开宗明义+第一部分第一课:什么是C++?

内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的,你不知道如何入门? 别担心,这个系列教程就是为C++初学者准备的. 不可否认,C++是一门非常著名的语言.几乎学计算机的同学都难免要碰一下C++,中国的大学课堂一般也是先学C语言入门,然后就是Java或者C++. C++ 这门语言的使用很广泛,特别是在游戏开发领域,C++的性能和无限可能性使得其几乎

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &

&lt;泛&gt; STL - stack 模拟实现

今天,看C++Template的时候看到那人写了一个Stack,于是乎,手痒,自己也写了一个,在拜读了STD文件和C++模板元编程某些小节之后,你们就看到了这篇代码. 经过上述一番经历之后,我重新写了myVector,使之更完善,更加服务于顶层结构,如:myStack myVector实现 栈没什么写的,大部分精力都放在了重新构建底层容器上,STL里面的功能函数基本都实现了,除了std的各种相关的构造函数实在整不来那么多 测试效果: #include "E:\数据结构\myStack.h&quo