当前位置: 首页 > 编程笔记 >

go语言实现顺序存储的栈

夏知
2023-03-14
本文向大家介绍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语言程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C语言 数据结构堆排序顺序存储(升序),包括了C语言 数据结构堆排序顺序存储(升序)的使用技巧和注意事项,需要的朋友参考一下 堆排序顺序存储(升序) 一: 完全二叉树的概念:前h-1层为满二叉树,最后一层连续缺失右结点! 二:首先堆是一棵全完二叉树: a:构建一个堆分为两步:⑴创建一棵完全二叉树      ⑵调整为一个堆 (标注:大根堆为升序,小根堆为降序)    b:算法描述:①创

  • 本文向大家介绍go语言实现sqrt的方法,包括了go语言实现sqrt的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言实现sqrt的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 主要内容:使用sort.Interface接口进行排序,常见类型的便捷排序,对结构体数据进行排序排序操作和字符串格式化一样是很多程序经常使用的操作。尽管一个最短的快排程序只要 15 行就可以搞定,但是一个健壮的实现需要更多的代码,并且我们不希望每次我们需要的时候都重写或者拷贝这些代码。 幸运的是,sort 包内置的提供了根据一些排序函数来对任何序列排序的功能。它的设计非常独到。在很多语言中,排序算法都是和序列数据类型关联,同时排序函数和具体类型元素关联。 相比之下,Go语言的 sort.So

  • 主要内容:接口被实现的条件一:接口的方法与实现接口的类型方法格式一致,接口被实现的条件二:接口中所有方法均被实现如果一个任意类型 T 的方法集为一个接口类型的方法集的超集,则我们说类型 T 实现了此接口类型。T 可以是一个非接口类型,也可以是一个接口类型。 实现关系在Go语言中是隐式的。两个类型之间的实现关系不需要在代码中显式地表示出来。Go语言中没有类似于 implements 的关键字。 Go编译器将自动在需要的时候检查两个类型之间的实现关系。 接口定义后,需要实现接口,调用方才能正确编译通

  • Go实现了两种并发形式,第一种是大家普遍认知的多线程共享内存,其实就是 Java 或 C++ 等语言中的多线程开发;另外一种是Go语言特有的,也是Go语言推荐的 CSP(communicating sequential processes)并发模型。 CSP 并发模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享 channel(管道)进行通信的并发模型。 Go语言就是借用 CSP

  • 本文向大家介绍Go语言实现简单留言板的方法,包括了Go语言实现简单留言板的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言实现简单留言板的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。