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);
    }
    

      以上为传结构指针的方式

  • 相关阅读:
    javascript block
    What is the difference between a function expression vs declaration in JavaScript?
    Clean Cache Struts2 Interceptor Tutorial
    第四节,目标检测---YOLO系列
    第三节,目标检测---R-CNN网络系列
    第二节:解决过拟合与梯度下降优化
    第一节,直观理解卷积神经网络
    第六节:深度学习的模型训练技巧——优化卷积核,多通道卷积,批量归一化
    第五节,损失函数:MSE和交叉熵
    第四节:tensorflow图的基本操作
  • 原文地址:https://www.cnblogs.com/gabygoole/p/4471737.html
Copyright © 2011-2022 走看看