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

      以上为传结构指针的方式

  • 相关阅读:
    【1118 | Day61】Vue中的循环以及修改差值表达式
    【1118 | Day61】Vue成员获取
    【1118 | Day61】Vue事件获取当前对象
    【1118 | Day61】Vue的使用
    【1113 | Day60】Vue介绍
    【1113 | Day60】灵魂拷问:什么是虚拟DOM?
    【1105 | Day59】灵魂拷问:为什么要在虚拟环境下进行 django 的开发?
    【1101 | Day58】一篇文章彻底理解cookie,session,token
    CSS中控制换行的四种属性
    弹出框居中显示
  • 原文地址:https://www.cnblogs.com/gabygoole/p/4471737.html
Copyright © 2011-2022 走看看