【数据结构-堆栈(顺序存储)GO语言实现】

顺序存储的堆栈可以看作是一个操作被限制数组,遵循着后进先出**(LIFO)**的原则。
顺序存储的堆栈代码arrayStack.go

package stackimport "fmt"//使用顺序存储实现堆栈数据结构
type Stack struct{Top int  //设置栈顶指针,由于Go语言的指针不能进行偏移与计算属于安全指针类型,所以这里采用一个存储空间来记录这个栈顶元素的位置Data [10]interface{} //定义该栈的大小
}//栈中元素个数查询
func(this *Stack) GetLength() int{return this.Top+1
}//增 将数据压入堆栈
func(this *Stack) Push(data interface{}) bool{if this.GetLength() == 10{return false}else{this.Data[this.Top] = datathis.Top++return true}
}// 减 将数据弹出堆栈
func(this *Stack) Pop()(interface{}, bool) {if this.GetLength() == 0{fmt.Println("堆栈为空")return nil, false}else{data := this.Data[this.Top-1]this.Top--return data, true}
}//查 栈顶元素
func(this *Stack) ReadValue() interface{}{if this.GetLength() == 0{fmt.Println("堆栈为空")return nil}else{return this.Data[this.Top-1]}
}

顺序存储的堆栈代码测试arrayStack_test.go

package stackimport ("fmt""testing"
)func Test_arrayStack(t *testing.T){stack := Stack{} //初始化堆栈fmt.Println(stack.Push(1))fmt.Println(stack.Push(2))fmt.Println(stack.Push(3))fmt.Println(stack.Push("q"))//fmt.Println(stack.Push(6))//fmt.Println(stack.Push("你好"))//fmt.Println(stack.Pop())//fmt.Println(stack.Push(8))//fmt.Println(stack.Push(9))//fmt.Println(stack.Push(10))fmt.Println(stack.ReadValue())//fmt.Println(stack.GetLength())
}

下一篇将描述如何使用链式存储结构实现堆栈这种数据结构

【数据结构-堆栈(顺序存储)GO语言实现】相关推荐

  1. 数据结构——堆栈的C语言实现

    1.什么叫堆栈? 2.堆栈的数据类型描述 3.堆栈顺序存储的C语言实现 #include<stdio.h> #include<stdlib.h>#define MaxSize ...

  2. 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码

    数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...

  3. 构建线性表的c语言代码,数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码...

    1.运行环境 这里说明一下这里所有的C语言代码都是基于code::blocks 20.03编译运行的.当然一些其他集成开发环境应该也是可以的,个人不太喜欢功能太过强大的IDE,因为那同样意味着相关设置 ...

  4. 数据结构摧毁线性表用c语言,[简述]数据结构-线性表(c语言实现)

    [简述]数据结构-线性表(c语言实现)second60 20180422 1. 线性表的定义 线性表是具有相同特性的数据元素的一个有限序列. 2. 线性表抽象数据类型描述 ADT  List { 数据 ...

  5. 数据结构堆栈 内存堆栈_了解堆栈数据结构

    数据结构堆栈 内存堆栈 In this article, we'll be understanding the working and the need for the Stack Data Stru ...

  6. 数据结构-二叉树入门Go语言实现

    数据结构-二叉树入门Go语言实现 之前我们一直在谈的是一对一的线性结构,可现实中,还有很多一对多的情况需要处理,所以我们需要研究这种一对多的数据结构--"树",考虑它的各种特性,来 ...

  7. 数据结构堆栈 内存堆栈_零堆栈数据科学家第二部分秋天

    数据结构堆栈 内存堆栈 In Hollywood, it is known that the sequels are rarely better than the original movie/par ...

  8. 数据结构c语言版题库编程,数据结构习题库(c语言版)

    <数据结构习题库(c语言版)>由会员分享,可在线阅读,更多相关<数据结构习题库(c语言版)(104页珍藏版)>请在人人文库网上搜索. 1.wages in arrears. 2 ...

  9. 数据结构python课后答案_数据结构与算法:Python语言描述 1~5章课后习题

    数据结构与算法:Python语言描述 1~5章课后习题 发布时间:2018-07-19 20:42, 浏览次数:1885 , 标签: Python MarkDown语法写的,不知道为啥上传到CSDN不 ...

最新文章

  1. serch安装2012 windows_随身携带电脑系统 U盘系统工具WinToGo系统安装到U盘
  2. mysql优化Analyze Table
  3. python --异常处理
  4. 大型系统OA--技术
  5. windows之DNS7种资源记录和flushdns命令清除DNS缓存以及nslookup解析域名和ipconfig/all命令查看网络配置使用总结
  6. [JSOI2018]潜入行动
  7. 根据在同一时间使用计算机,3.根据在同一时间使用计算机用户的多少,操作系统可以分为单用户操作系统和多用户操作系统。...
  8. 怎样让公式编号不从1开始
  9. 别墅客厅吊顶怎么做?有哪些注意事项?
  10. 3.1 Tensorflow基础知识
  11. Oracle、SQL Server、MySQL数据类型对比
  12. 【转载】"library not found for - "解决办法
  13. java实习鉴定书个人鉴定_大学生实习鉴定表自我鉴定范文
  14. 27、一个扒网站软件——teleport ultra(静态页面)
  15. Selenium 模拟键盘操作
  16. python用一行代码画个迷宫_[代码全屏查看]-用turtle不断的画回字迷宫
  17. python用于财务数据分析_财务数据分析进阶之路
  18. Android转场动画(View Activity ARouter)
  19. Linux Snap 命令
  20. Note For Linux By Jes(2)-Linux文件与目录管理

热门文章

  1. Python实现数字转人民币(大写汉字)源代码
  2. 我们为什么选择NEXTCHIP?为什么要选择ISP?为什么要选择AHD?为什么选择北京冠宇铭通?
  3. 使用GerberTools的Gerber Panelizer工具进行gerber文件拼板的方法
  4. Linux下C++使用Protobuf的安装步骤(vscode)
  5. 数组的reduce的妙用之处
  6. 直击|支付宝还信用卡下月开始收费 每月2000免费额度
  7. 最大流的Ford-Fulkerson 标号法
  8. 网络(Network)
  9. python爬虫检测ip是否有效
  10. 程序员延寿指南 | A programmer's guide to live longer