zoukankan      html  css  js  c++  java
  • 数据结构---堆栈

    #include<stdio.h>
    #include<stdlib.h>
    #define MAX 1000
    
    void myPush(int *stack,int *ptr,int data)
    {
        stack[++(*ptr)]=data;//如果写成stack[(*ptr)++]=data错误
    }
    
    int readMyStack(int *stack,int *ptr)
    {
        return stack[*ptr];
    }
    void myPop(int *ptr)
    {
        (*ptr)--;
    }
    
    int main()
    {
        int mystack[MAX];
        int pointer=-1,i;
        myPush(mystack,&pointer,11);
        myPush(mystack,&pointer,10);
        myPush(mystack,&pointer,9);
        i=readMyStack(mystack,&pointer);
        printf("%d
    ",i);
        myPop(&pointer);
        i=readMyStack(mystack,&pointer);
        printf("%d
    ",i);
    }
    

      以上为为用数组模拟的传pointer地址的

    注意:myStack为指向int值的指针,函数传参,int *stack,stack也为指向int值的指针,向函数传递数组信息,stack[]直接操作数组

    /*传pointer值*/
    #include<stdio.h>
    #include<stdlib.h>
    #define MAX 1000
    
    int myPush(int *stack,int ptr,int data)
    {
        stack[++(ptr)]=data;
        return ptr;
    }
    
    int readMyStack(int *stack,int ptr)
    {
        return stack[ptr];
    }
    int  myPop(int ptr)
    {
        return (--ptr);
    }
    
    int main()
    {
        int mystack[MAX];
        int pointer=-1,i;
        pointer=myPush(mystack,pointer,11);
        pointer=myPush(mystack,pointer,10);
        pointer=myPush(mystack,pointer,9);
        i=readMyStack(mystack,pointer);
        printf("%d
    ",i);
        pointer=myPop(pointer);
        i=readMyStack(mystack,pointer);
        printf("%d
    ",i);
    }
    

      以上为用传值的方式

    /*传结构*/
    #include<stdio.h>
    #include<stdlib.h>
    #define MAX 1000
    struct myStack{
        int pointer;
        int stack[MAX];
    };
    
    void myPush(struct myStack *s,int ptr,int data)
    {
        s->pointer++;
        s->stack[s->pointer]=data;
    }
    
    int readMyStack(struct myStack *s,int ptr)
    {
        return s->stack[s->pointer];
    }
    int  myPop(int ptr)
    {
        return (--ptr);
    }
    
    int main()
    {
        int i;
        struct myStack s1;
        s1.pointer=-1;
        myPush(&s1,s1.pointer,11);
        myPush(&s1,s1.pointer,10);
        myPush(&s1,s1.pointer,9);
        i=readMyStack(&s1,s1.pointer);
        printf("%d
    ",i);
        s1.pointer=myPop(s1.pointer);
        i=readMyStack(&s1,s1.pointer);
        printf("%d
    ",i);
    }
    

      以上为传结构指针的方式

  • 相关阅读:
    ubuntu 构建Xilinx交叉编译环境
    codeSourcery交叉编译环境
    ZYNQ学习之路1. Linux最小系统构建
    静态代码块的执行顺序
    storm maven-shade-plugin
    spring 3.2.7 applicationContext.xml
    ZipUtils
    成员内部类
    jetty jndi数据源
    applicationContext中普通数据源不用jndi数据源
  • 原文地址:https://www.cnblogs.com/gabygoole/p/4471737.html
Copyright © 2011-2022 走看看