zoukankan      html  css  js  c++  java
  • 栈是一个种特殊的线性表,它只能在栈顶进行插入和删除操作,它实现的是一种后进先出(LIFO)的策略。

    可以用数组来作为栈,插入操作称为push,删除操作称为pop,栈有个属性top[S],它指向最近插入的元素,称为栈顶,例如栈S包含元素S[1..top[S]],其中S[1]是栈底元素,S[top[S]]是栈顶元素。

    当top[S]=0时,栈不包含任何元素,称为空栈,判断空栈过程如下:

    STACK-EMPTY(S)
        if top[S] = 0
            then return TRUE
            else return FALSE

    c代码为:

    int stack_empty(int S[])
    {
    	if (top == 0) {
    		return 1;
    	}
    
    	return 0;
    }


    压栈过程如下:

    PUSH(S, x)
        top[S] <-- top[S]+1
        S[top[S]] <-- x

    c代码为:

    void push(int S[], int x)
    {
    	S[top++] = x;
    }


    出栈过程如下:

    POP(S)
        if STACK-EMPTY(S)
            then error "underflow"
        else top[S] <-- top[S]-1
            return S[top[S]+1]

    c代码为:

    int pop(int S[])
    {
    	if (stack_empty(S)) {
    		printf("underflow.
    ");
    	} else {
    		return S[top--];
    	}
    }
  • 相关阅读:
    CSS介绍
    docker入门
    nginx+uWSGI+django+virtualenv+supervisor发布web服务器
    niginx入门
    常用服务安装部署
    VIM
    linux基本命令
    linux目录分级
    OpenStack共享组件
    kvm认识和安装
  • 原文地址:https://www.cnblogs.com/james1207/p/3283353.html
Copyright © 2011-2022 走看看