zoukankan      html  css  js  c++  java
  • 切片实现栈的功能

    package main
    
    import (
        "fmt"
    )
    //定义栈结构
    type Stack struct {
        StrArray []string
        Size     int
        Top      int
    }
    
    func NewStack(size int) *Stack {
        return &Stack{StrArray: make([]string, size), Size: size, Top: -1}
    }
    
    //push数据
    func (arr *Stack) Push(item string) bool {
        if arr.IsFull() {
            return false
        }
        arr.Top++
        arr.StrArray[arr.Top] = item
        return true
    }
    //取出数据
    func (arr *Stack) Pop() (string, bool) {
        if arr.IsEmpty() {
            return "", false
        }
        item := arr.StrArray[arr.Top]
        arr.Top--
        return item, true
    }
    //判断是否空栈
    func (arr *Stack) IsEmpty() bool {
        return arr.Top == -1
    }
    //判断是否满栈
    func (arr *Stack) IsFull() bool {
        return arr.Top == arr.Size - 1
    }
    
    func main() {
        stack := NewStack(5)
        stack.Push("a")
        stack.Push("b")
        stack.Push("c")
        fmt.Print(stack.StrArray)
        fmt.Print(stack.Top)
    }
  • 相关阅读:
    Unit of Work
    Layered Supertype
    Domain Model
    ASP.Net设计模式读书笔记
    VS2010无法使用nuget安装第三方包的问题
    数据库对象命名
    sql50题
    RESTFul API
    EasyUI日历控件
    ASP.NET MVC 防止前端点击劫持
  • 原文地址:https://www.cnblogs.com/ashion89/p/13796517.html
Copyright © 2011-2022 走看看