vs2010编译C++ 栈的使用

// CTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

typedef int ElemType;
struct Stack{
    ElemType *stack;
    int top;
    int maxSize;
};
void InitStack(Stack& s){
    s.maxSize =10;//设置栈空间的大小为10个元素的位置
    s.stack = new ElemType[s.maxSize];
    if(!s.stack){
        cerr<<"动态存储分配失败"<<endl;
        exit(1);
    }
    s.top=-1;//初始栈为空cf
}
void Push(Stack &s,ElemType item){//元素item进栈,即插入到栈顶
    if(s.top==s.maxSize-1){
        int k = sizeof(ElemType);
        s.stack = (ElemType *)realloc(s.stack,2*s.maxSize*k);
        s.maxSize = 2*s.maxSize;
    }
    s.top++;
    s.stack[s.top]=item;
}
ElemType Pop(Stack &s){//删除栈顶元素,并返回
    if(s.top==-1){
        cerr<<"Stack is empty!"<<endl;
        //exit(1);
    }
    s.top--;
    return s.stack[s.top+1];
}
ElemType Peek(Stack &s){//读取栈顶的元素
    if(s.top==-1){
        cerr<<"Stack is empty!"<<endl;
        exit(1);
    }
    return s.stack[s.top];
}
bool EmptyStack(Stack &s){//清空栈
    return s.top == -1;
}
void ClearStack(Stack &s){
    if(s.stack){
        delete []s.stack;
        s.stack = 0;
    }
    s.top = -1;
    s.maxSize = 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
    Stack s;
    InitStack(s);//初始化栈
    int a[8]={3,8,5,17,9,30,15,22};
    for(int i=0;i<8;i++){//将数据插入到栈顶
        Push(s,a[i]);
    }
    cout<<Pop(s);
    cout<<‘ ‘<<Pop(s)<<endl;
    Push(s,86);
    cout<<Peek(s);
    cout<<‘ ‘<<Pop(s)<<endl;
    while(!EmptyStack(s)){//如果栈不为空
        cout<<Pop(s)<<‘ ‘;
    }
    cout<<endl;
    ClearStack(s);
    system("pause");
    return 0;
}
时间: 2024-07-29 13:03:20

vs2010编译C++ 栈的使用的相关文章

vs2010 编译多个project问题

使用VS2010 编译从vc6.0复制过来的原project文件源代码.提示错误非常多.感觉无从下手.非常多原始的函数和API參数都提示类型 错误或者不兼容. 百度一下.第一个问题: vc6.0使用ASIIC字符.而VS2010默认选项使用unicode. 在project上面右键属性,把默认字符集改动为 "No Set",例如以下图所看到的 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXljb29sbWU1/font/5a6L5L2T/

亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查

OSG+QT5+vs2010编译

OSG+QT5+vs2010编译 作者:[email protected]  本文属于原创,转载请注明出处. 由于网上没有找到关于编译QT5环境下的OSG,自己就研究了下,记录下整个过程,希望能帮到大家. 1. 准备工作 下载源代码: A.openscenegraph 3.2.1(当前最新的realease版本) http://www.openscenegraph.org/downloads/developer_releases/OpenSceneGraph-3.2.1.zip B.osg-3r

用vs2010编译vigra静态库及简单使用举例

1.  从 http://ukoethe.github.io/vigra/ 下载最新源代码vigra-1.10.0-src-with-docu.tar.gz,并加压缩到D:\soft\vigra,生成vigra-1.10.0文件夹: 2.  从http://www.cmake.org/cmake/resources/software.html下载CMake并安装: 3.  打开CMake,Where is thesource code: D:/soft/vigra/vigra-1.10.; Wh

使用vs2010编译lua5.1源码生成lua.lib

一.打开vs2010 二.创建项目 新建项目->win32控制台应用程序->下一步->应用程序设置中选择静态库,不勾选预编译头->完成.具体如下图: 三.拷贝源码 将lua源码中的*.h文件拷贝到项目的头文件文件夹下,将lua源码中的*.c文件拷贝到项目的源文件文件夹下. 四.生成lua.lib 项目右键->生成.此时即可在项目的Debug文件夹下看到生成的 lua.lib了. 使用vs2010编译lua5.1源码生成lua.lib,布布扣,bubuko.com

vs2010 编译mosquitto win32版本,开启websockets,实现消息推送

前言:因为之前没有怎么碰vs,只搞过cygwin,而cygwin上搞了好久都搞不定,以至于重新整理思路,这window上的版本应该怎么去编译.一直不知道怎么搞,只能边看其他教程,边自己搞着,连续几天下了班就可以研究编译,特别是在开启websockets的时候,加上libwebsockets库,对于小白来说,特别痛苦.也罢,最后也成功编译. 编译的电脑:MacBook Pro 虚拟机win7,64bit,1.5G的内存 参考:http://blog.csdn.net/Netown_Ethereal

VS2010编译Qt程序失败------error LNK1123: 转换到 COFF 期间失败:

error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏使用VS2010编译VC++项目的时候可能会出这个问题. 据说升级到SP1后可能问题解决,但是下载量太大,目前没有得到证实. 网上大多的方法都是说在“清单工具”中将嵌入清单改成“否”,但是这个不一定100%解决问题. 我总结了下 http://www.verydemo.com/demo_c278_i5203.html http://davidrobot.com/2014/06/qt5_vs2010_lnk1123_erro

windows下用vs2010编译ffmpeg

转载自;http://q1q2q3q4q5q6ln.blog.163.com/blog/static/500794332014666536283/ (注意:请务必先阅读:七,后记补充:) ffmpeg是一个开源的多媒体库,使用非常广泛.在linux下编译ffmpeg非常简单,而在Windows下编译就不是那么容易了.一般在windows下使用MinGW的gcc toolchain进行编译,这样的话,因为ffmpeg的导出函数均是C风格,因而gcc编译的lib可以被vs链接.但是gcc的debug

qt引入VS2010编译的dll

在qt中引入dll文件的时候,如果这个dll是qt编译的,直接把dll和lib文件拷到目录下,然后用 #pragma comment(lib,"./xx.lib") 引入这个dll就可以用里面的函数了. 但是,这次我用vs2010编译了一个dll,用相同的办法,结果发现qt会报错,上论坛查了一下,发现用以下方式就可以在qt中正确引入vs2010编译的dll文件: 在pro文件里加上 LIBS += -LD:\test\test1 -ltest 就是在-L后面加上绝对路径,-l后面加上l