• s2010编译C++ 链栈的使用


    // CTest.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    using namespace std;
    
    typedef int ElemType;
    struct Stack{
        ElemType data;
        Stack *next;
    };
    void InitStack(Stack* &HS){
        HS = NULL;
    }
    void Push(Stack* &s,const ElemType &item){//元素item进栈,即插入到栈顶
        //为插入元素获取动态节点
        Stack * newptr = new Stack;
        //给新分配的节点赋值
        newptr->data=item;
        //向栈顶插入新结点
        newptr->next=s;
        s=newptr;
    }
    ElemType Pop(Stack* &s){//删除栈顶元素,并返回
        if(s==NULL){
            cerr<<"Linked stack is empty!"<<endl;
            exit(1);
        }
        Stack *p= s;//暂存栈顶结点指针
        s = s->next;//使栈顶指针指向下一个节点
        ElemType temp = p->data;//暂存原栈顶元素
        delete p;              //回收原栈顶结点
        return temp;
    }
    ElemType Peek(Stack* &s){//读取栈顶的元素
        if(s==NULL){
            cerr<<"Linked stack is empty!"<<endl;
            exit(1);
        }
        return s->data;
    }
    bool EmptyStack(Stack* &s){//清空栈
        return s==NULL;
    }
    void ClearStack(Stack* &s){
        Stack *cp,*np;
        cp = s;
        while(cp!=NULL){
            np = cp->next;
            delete cp;
            cp = np;
        }
        s = NULL;
    }
    int _tmain(int argc, _TCHAR* argv[])
    {
        Stack *s;
        InitStack(s);//初始化栈
        int x;//从键盘上输入x
        cin >>x;
        while(x!=-1){
            Push(s,x);//向栈中加入数据
            cin>>x;
        }
        while(!EmptyStack(s)){//如果栈不为空
            cout<<Pop(s)<<' ';
        }
        cout<<endl;
        ClearStack(s);
        system("pause");
        return 0;
    }

    输入数据 9 8 1 2 3 5 6 -1 9 3 4

     输出数据6 5 3 2 1 8 9

  • 相关阅读:
    1040 最大公约数之和
    51nod 1215 数组的宽度
    51nod 1423 最大二“货” 单调栈
    51nod 1437 迈克步 单调栈
    1564 区间的价值
    51nod 1294 修改数组
    51nod1693 水群 最短路
    51nod1052 最大M子段和
    我不管,这就是水题《1》
    河工大校赛 Hmz 的女装 http://218.28.220.249:50015/JudgeOnline/problem.php?id=1265
  • 原文地址:https://www.cnblogs.com/bksqmy/p/4549898.html
Copyright © 2020-2023  润新知