您现在的位置是:首页 > 正文

golang 实现简单的栈

2024-02-29 13:34:31阅读 0

第一种 基于[]int

type Stack []int

// push
func (s *Stack) Push(a int) {
	*s = append(*s, a)
}

// pop
func (s *Stack) Pop() int {
	a := (*s)[len(*s)-1]
	*s = (*s)[:len(*s)-1]
	return a
}

// len
func (s *Stack) Len() int {
	return len(*s)
}

第二种 定义结构体

type Stack struct {
	slc []int
}

func (s *Stack) Push(a int) {
	s.slc = append(s.slc, a)
}

func (s *Stack) Pop() int {
	a := s.slc[len(s.slc)-1]
	s.slc = s.slc[:len(s.slc)-1]
	return a
}
func (s *Stack) Len() int {
	return len(s.slc)
}

基准测试

	// push
	for i := 0; i < 50; i++ {
		stack.Push(i)
	}

	// pop
	for i := 0; i < 25; i++ {
		stack.Pop()
	}

	// push & pop

	for i := 0; i < 25; i++ {
		stack.Push(i)
		stack.Pop()
	}
	stack.Len()

在这里插入图片描述
性能差距不大。
建议第二种实现。 方便扩展,而且可读性高一点。

网站文章

  • 【NO.90】LeetCode HOT 100—448. 找到所有数组中消失的数字

    448. 找到所有数组中消失的数字

    2024-02-29 13:33:58
  • '\b'退格符号笔记

      今天在给小孩儿讲for循环输出最后一个输出项没有空格的情况  借助标记,选择在第二个至最后一个的输出项前添加空格1 int flag = 0;2 for(int i = 0; i < n; i++) {3 if(flag == 0) cout << a[i];4 else cout << ' ' << ...

    2024-02-29 13:33:51
  • Python多线程获取小米应用商店App,看看我是怎么做到的(干货篇)

    Python多线程获取小米应用商店App,看看我是怎么做到的(干货篇)

    一、【项目背景】小米应用商店给用户发现最好的安卓应用和游戏,安全可靠,可是要下载东西要一个一个的搜索太麻烦了。而且速度并不是很快。今天小编就教大家利用多线程爬取小米应用商店的游戏模块,快速获取我们想要...

    2024-02-29 13:33:45
  • 特检院计算机网络需求分析,呼伦贝尔市特检所开展质量管理体系文件宣贯培训工作-体系文件...

    3月4日呼伦贝尔市特种设备检验所质量管理体系文件宣贯培训班如期举行。此次宣贯培训是该所2016年工作计划安排中的一项重要内容,所领导班子成员、各检验业务科室和综合管理科室人员参加了学习。此次培训内容是...

    2024-02-29 13:33:15
  • Numpy教程

    Numpy教程

    前言参见:What is NumpyNumpy是Python科学计算的基本包,它提供一个多维数组对象及各种派生对象(如屏蔽的数组和矩阵)以及一系列用于数组快速操作的例程,包括数学、逻辑、形状操作、排序...

    2024-02-29 13:33:08
  • 深入理解计算机系统------第八章fork函数运用

    深入理解计算机系统------第八章fork函数运用

    近期学到了深入理解计算机系统基础第八章异常控制流,接下来说一说在这一章C位出道的fork()函数吧。 fork函数 父进程通过调用fork函数来创建一个新的运行的子进程。 #include #include pid_t fork(void); 返回:子进程返回0,父进程返回子进程的PID,如果创建出错,返回-...

    2024-02-29 13:33:01
  • GrapeCity Documents for Excel, .NET Crack

    GrapeCity Documents for Excel, .NET Crack

    在.NET、.NET Core、.NET Framework、Mono、Xamarin.iOS和Xamarin.Android的应用程序中使用。基于Excel的文档对象模型-基于接口的API允许您导入...

    2024-02-29 13:32:55
  • maven指令

    (1)打包的时候去掉test测试代码:mvn clean install -Dmaven.test.skip

    2024-02-29 13:32:25
  • uni-app开发教程之swiper组件使用教程

    uni-app开发教程之swiper组件使用教程

    Uniapp是一款跨平台的开发框架,可以用于开发微信小程序、H5、App等多种应用。其中,swiper组件是一种非常常用的组件,可以实现轮播图、图片滑动等效果。本文将详细介绍如何在Uniapp中使用swiper组件。

    2024-02-29 13:32:18
  • 深度学习概念合集(二)

    深度学习概念合集(二)

    56层比20层要错误要高很多,那多的36层怎么搞,需要来进行同等映射,不能剔除,那就把有用的层保持,无用的层权重参数变成0。感受野的定义是卷积神经网络每一层输出的特征图(feature map)上的像...

    2024-02-29 13:32:10