golang实现常用数据结构

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.数组栈的实现

package main

import (
"fmt"
)

type ItemType int

type Stack struct {
node    [10]ItemType
maxsize int
top     int
}

func StackInit(p *Stack) {
p.top = -1
}

func StackCheckFull(p *Stack) bool {
if p.top >= p.maxsize {
return true
} else {
return false
}
}

func StackCheckEmpty(p *Stack) bool {
if p.top <= -1 {
return true
} else {
return false
}
}

func StackPush(p *Stack, v ItemType) {
p.top++
p.node[p.top] = v
return
}

func StackPop(p *Stack) (v ItemType) {
v = p.node[p.top]
p.top--
return v
}

func main() {
var stack Stack
StackPush(&stack, 100)
StackPush(&stack, 88)
StackPush(&stack, 44)
value := StackPop(&stack)
fmt.Println(value)
}

2.链表的实现

package main

import (
"fmt"
)

type item int

type list struct {
data item
next *list
}

var phead, ptail *list
var listCount int

func main() {
listInit()
listAdd(100)
listAdd(99)
listAdd(77)
listTraverse()
}

func listInit() {
head := new(list)
phead = head
ptail = head
listCount = 0
}

func listAdd(data item) {
var q *list = new(list)
q.next = nil
q.data = data
ptail.next = q
ptail = q
listCount++
}

func listInsert(data item, pos int) int {
if pos >= listCount {
return -1
}
var ptmp *list = phead
for i := 0; i < pos; i++ {
ptmp = ptmp.next
}
q := new(list)
q.data = data
q.next = ptmp.next
ptmp.next = q
listCount++
return 0
}

func listDelete(pos int) int {
if pos > listCount {
return -1
}
var ptmp *list = phead
for i := 0; i < pos-1; i++ {
ptmp = ptmp.next
}
ptmp.next = ptmp.next.next
return 0
}

func listTraverse() {
var ptmp *list = phead
for ptmp.next != nil {
ptmp = ptmp.next
fmt.Printf("%d->", ptmp.data)
}
}



转载于:https://my.oschina.net/u/1383471/blog/624744

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html label修改字体颜色,Swift label文字显示不同颜色(字体)

根据 Stack Overflow 上的这篇文章 大概有三种方法:1. 先设置整个 text 为 NSMutableAttributedString, 再使用 Range 设置要改变颜色(字体)的文本var myString:NSString "I AM KIRIT MODI"var myMutableString NSMutableAttributedString()In ViewDidLoadoverride…

【问题解决】无法创建新的堆栈防护页面

【问题发现】 项目中需要几个自定义的控件,菜鸟D定义了一个接口,打算使用多态来统一调用。在完成两个自定义控件后&#xff0c;项目都能正常运行。但是在第三个控件使用的时候就出了问题&#xff1a;将控件拖到界面上以后&#xff0c;不能拖动改变控件的宽度&#xff0c;一拖动…

html里空间顺序,按空间顺序写我的房间作文

导语&#xff1a;人人的房间都是不一样的&#xff0c;因为每个人都有自己独特的性格和思想。下面是由小编整理的关于按空间顺序写我的房间作文。欢迎阅读&#xff01;篇一&#xff1a;我的房间作文(按空间顺序)我的房间在客厅的东面&#xff0c;床的右侧是一面窗户&#xff0c;…

一分钟了解阿里云产品:RDS概述

下面我们来介绍下阿里云的云数据库&#xff08;Relational Database Service&#xff0c;简称RDS&#xff09;这款产品。一起来学习下吧。 那么&#xff0c;RDS是什么呢&#xff1f;简单来说&#xff0c;它是一种稳定可靠、可弹性伸缩的在线数据库服务。 RDS基于飞天分布式系统…

Python速忆笔记(更新中)

你好&#xff0c;如果你是第一次看我的笔记&#xff0c;欢迎您关注我&#xff0c;我喜欢持续分享更多有意思的干货。如果能够帮到您的话&#xff0c;希望你给我点个赞❤️ 文章目录1.1 快速回忆1.1.1 打印和注释1.1.1.1 打印1.1.1.2 注释1.1.2 字符串1.1.2.1 概述1.1.2.2 拼接1…

读书

博客注册有一段时间了&#xff0c;但是一直没开张。冒着虽然写东西也还是会长草的危险&#xff0c;我还是先贴几个字吧&#xff0c;一方面是好歹给自己一个开始&#xff0c;一方面也是有人想看。其实后者更重要&#xff0c;这个跟我们写代码很像&#xff0c;很多时候你关注一些…

java及python调用RabbitMQ

1,python调用MQ发送消息(生产者),话不多说,直接上干货 import pika 如下图 2.java调用MQ发送消息(生产者) 具体代码如下: python 的代码如下 connection pika.BlockingConnection(pika.ConnectionParameters(IP,端口,/))channel connection.channel()msg_props pika.Bas…

android模块化 osgi,蚂蚁金融级移动应用 osgi 模块化架构实践.pdf

蚂蚁金融级移动应用 osgi 模块化架构实践To p 1 0 0 C a s eS t u d i e s O f T h e Ye a r s-AndroidTo p 1 0 0 C a s eS t u d i e s O f T h e Ye a r s1“Application” App“Service”2BundleComponent3MultiDexTo p 1 0 0 C a s eS t u d i e s O f T h e Ye a r s-300…

MySQL速忆笔记(更新中)

本笔记不适合初学者观看&#xff0c;如果想细致了解数据库的初学者可以前往数据库杂谈全集深入了解。 数据库原理指路&#xff1a;数据库杂谈&#xff08;一&#xff09; 另外希望能看到这篇笔记的同志能点个赞&#xff0c;在内卷的时代分享知识不容易。 文章目录[toc]1 准备工…

svn上传报Authorization failed错误解决办法

svn上传文件时没有弹出用户登录界面&#xff0c;而是直接报Authorization failed错误。出现该问题基本都是三个配置文件的问题&#xff0c;下面把这个文件列出来 svnserve.conf配置文件中的 [general] anon-access read auth-access write password-db passwd authz-db aut…

html知识收集(一)

1.页内跳转iframe <ul> <li><a href"1.html" target"iframe1">1</a></li> <li><a href"2.html" target"iframe1">2</a></li> </ul> </ul> <iframe name"i…

html5怎么调用手机陀螺仪,html5 获取 陀螺仪,重力感应(转发)

DeviceOrientationEvent是获取方向&#xff0c;得到device静止时的绝对值&#xff1b;DeviceMotionEvent是获取移动速度&#xff0c;得到device移动时相对之前某个时间的差值比设备定位API&#xff0c;该API允许你收集设备的方向和移动信息。此外&#xff0c;该API只在具备陀螺…

设定Word段落的背景色

段落背景不同于文字区别。很多新接触word的朋友都找不到怎么弄。 先把光标停留在需要设置的段落文字上&#xff0c;或者选择需要设置的段落文字。 点击段落里的边框和底纹&#xff0c;如图 在弹出框中选择底纹。 选择需要填充的颜色&#xff0c;在左下角处把文字切换成段落。…

Hadoop随笔(二)

文章目录[toc]2 Hadoop概念2.1 Hadoop简介2.2 MapReduce编程模型简介2.3 Hadoop系统的组成2 Hadoop概念 面对大数据量的处理需求&#xff0c;一个常用的方法就是把它们分割成互不依赖的小份数据来分别计算处理&#xff0c;这就是所谓的单指令多数据流(SIMD)的数据计算模式。Ha…

HDU 5102 The K-th Distance

题意&#xff1a;给你n-1条边&#xff0c;然后没两个节点的距离按照递增的顺序&#xff0c;求出前k项的和。 官方题解&#xff1a; 把所有边(u,v) 以及(v,u)放入一个队列&#xff0c;队列每弹出一个元素(u,v)&#xff0c;对于所有与u相邻的点w&#xff0c;如果w!v&#xff0c;就…

spring AOP 之五:Spring MVC通过AOP切面编程来拦截controller

示例1&#xff1a;通过包路径及类名规则为应用增加切面 该示例是通过拦截所有com.dxz.web.aop包下的以Controller结尾的所有类的所有方法&#xff0c;在方法执行前后打印和记录日志到数据库。 新建一个springboot项目 1&#xff1a;首先定义maven <?xml version"1.0&q…

2021高考成绩查询内蒙时间,2021内蒙古高考成绩什么时候几点可以查

【摘要】2021内蒙古高考成绩什么时候出&#xff1f;随着高考的结束&#xff0c;高考成绩的发布时间就成为了广大考生和家长所关注的问题&#xff0c;以下是由整理的相关信息&#xff0c;希望对大家有所帮助&#xff01;问&#xff1a;2021内蒙古高考成绩什么时候出&#xff1f;…

数据结构杂谈(二)

本文的所有代码均由C编写 如果你已经看完这篇杂谈&#xff0c;可以前往下一篇→数据结构杂谈&#xff08;三&#xff09;_尘鱼好美的小屋-CSDN博客 文章目录2 顺序表2.1 线性表的类型定义2.2 类C语言有关操作补充2.2.1 ElemType的解释2.2.2 数组定义2.2.3 建立链表可能会用到的…

[UIKit学习]08.关于自定义控件

自定义控件 选用xib用自定义view代码与xib相关联 示例代码 (instancetype)shopView { return [self shopViewWithShop:nil]; } (instancetype)shopViewWithShop:(XMGShop *)shop { //*注&#xff1a;自定义控件时&#xff0c;尽量把所有关于控件本身逻辑在控件本身处理 XMGSh…

C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息

C#调用SQL中的存储过程中有output参数&#xff0c;类型是字符型的时候一定要指定参数的长度。不然获取到的结果总是只有第一字符。本人就是由于这个原因&#xff0c;折腾了很久。在此记录一下&#xff0c;供大家以后参考&#xff01; 例如&#xff1a; CREATE PROCEDURE sp_Acc…