| 本文实例讲述了go语言实现顺序存储的栈。分享给大家供大家参考。具体如下: 1. sequence.go代码如下:复制代码 代码如下:////////
 // 顺序存储的栈
 ////////
 package sequence
 const MAXSIZE = 20
 type Stack struct {
 nbsp;nbsp;nbsp; Data [MAXSIZE]int //存储栈元素
 nbsp;nbsp;nbsp; Topnbsp; intnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; //指向栈顶,总是指向顶部元素,空时为-1
 }
 //压栈
 //d:栈元素
 func (s *Stack) Push(d int) bool {
 nbsp;nbsp;nbsp; if s.Top+1 gt; MAXSIZE {
 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; return false
 nbsp;nbsp;nbsp; }
 nbsp;nbsp;nbsp; s.Data[s.Top+1] = d
 nbsp;nbsp;nbsp; s.Top++
 nbsp;nbsp;nbsp; return true
 }
 //弹栈
 func (s *Stack) Pop() int {
 nbsp;nbsp;nbsp; if s.Top == -1 {
 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; return 0
 nbsp;nbsp;nbsp; }
 nbsp;nbsp;nbsp; s.Data[s.Top] = 0
 nbsp;nbsp;nbsp; d := s.Data[s.Top]
 nbsp;nbsp;nbsp; s.Top--
 nbsp;nbsp;nbsp; return d
 }
 //取栈的容量
 func (s *Stack) GetVol() int {
 nbsp;nbsp;nbsp; return len(s.Data)
 }
 //取栈的长度
 func (s *Stack) GetLength() int {
 nbsp;nbsp;nbsp; c := s.Top + 1
 nbsp;nbsp;nbsp; return c
 }
 2. main.go代码如下:
 复制代码 代码如下:package main
 import (
 nbsp;nbsp;nbsp; "fmt"
 nbsp;nbsp;nbsp; "stack/sequence"
 )
 func main() {
 nbsp;nbsp;nbsp; //初始化一个栈
 nbsp;nbsp;nbsp; var s sequence.Stack
 nbsp;nbsp;nbsp; s.Top = -1
 nbsp;
 nbsp;nbsp;nbsp; //压入10个元素
 nbsp;nbsp;nbsp; for i := 1; i lt;= 10; i++ {
 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; s.Push(i)
 nbsp;nbsp;nbsp; }
 nbsp;nbsp;nbsp; fmt.Println(s)
 nbsp;nbsp;nbsp; fmt.Println(s.GetVol())nbsp;nbsp;nbsp; //容量
 nbsp;nbsp;nbsp; fmt.Println(s.GetLength()) //长度
 nbsp;
 nbsp;nbsp;nbsp; //弹出一个元素
 nbsp;nbsp;nbsp; s.Pop()
 nbsp;nbsp;nbsp; s.Pop()
 nbsp;nbsp;nbsp; fmt.Println(s)
 nbsp;nbsp;nbsp; fmt.Println(s.GetVol())nbsp;nbsp;nbsp; //容量
 nbsp;nbsp;nbsp; fmt.Println(s.GetLength()) //长度
 }
 希望本文所述对大家的Go语言程序设计有所帮助。 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |