go语言实现顺序存储的栈 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    作者:OSC首席键客 字体:[增加 减小] 类型:转载

    这篇文章主要介绍了go语言实现顺序存储的栈,实例分析了Go语言实现顺序存储的栈的原理与各种常见的操作技巧,需要的朋友可以参考下

    本文实例讲述了go语言实现顺序存储的栈,

go语言实现顺序存储的栈

。分享给大家供大家参考。具体如下:

    1. sequence.go代码如下:

    代码如下:

    ////////

    // 顺序存储的栈

    ////////

    package sequence

    const MAXSIZE = 20

    type Stack struct {

    Data [MAXSIZE]int //存储栈元素

    Top int         //指向栈顶,总是指向顶部元素,空时为-1

    }

    //压栈

    //d:栈元素

    func (s *Stack) Push(d int) bool {

    if s.Top+1 > MAXSIZE {

    return false

    }

    s.Data[s.Top+1] = d

    s.Top++

    return true

    }

    //弹栈

    func (s *Stack) Pop() int {

    if s.Top == -1 {

    return 0

    }

    s.Data[s.Top] = 0

    d := s.Data[s.Top]

    s.Top--

    return d

    }

    //取栈的容量

    func (s *Stack) GetVol() int {

    return len(s.Data)

    }

    //取栈的长度

    func (s *Stack) GetLength() int {

    c := s.Top + 1

    return c

    }

    2. main.go代码如下:

    代码如下:

    package main

    import (

    "fmt"

    "stack/sequence"

    )

    func main() {

    //初始化一个栈

    var s sequence.Stack

    s.Top = -1

    //压入10个元素

    for i := 1; i <= 10; i++ {

    s.Push(i)

    }

    fmt.Println(s)

    fmt.Println(s.GetVol())   //容量

    fmt.Println(s.GetLength()) //长度

    //弹出一个元素

    s.Pop()

    s.Pop()

    fmt.Println(s)

    fmt.Println(s.GetVol())   //容量

    fmt.Println(s.GetLength()) //长度

    }

    希望本文所述对大家的Go语言程序设计有所帮助,

电脑资料

go语言实现顺序存储的栈》(https://www.unjs.com)。

最新文章