内容简介:两栈共享空间的结构的golang代码如下:
图片来源于《大话数据结构》
图片来源于《大话数据结构》
两栈共享空间的结构的golang代码如下:
package stack import ( "fmt" "errors" ) //共享栈 const MaxDoubleSize = 20 //存储空间初始分配量 type DoubleStack struct { data [MaxDoubleSize]SElemType top1 int //栈1栈顶指针 top2 int //栈2栈顶指针 } // 初始化一个空栈 func (d *DoubleStack) InitStack () { d.top1 = -1 d.top2 = MaxDoubleSize } // 把d置为空栈 func (d *DoubleStack) ClearStack() { d.top1 = -1 d.top2 = MaxDoubleSize } // 若栈l为空栈,则返回true 否则返回false func (d *DoubleStack) IsEmpty() bool { if d.top1 == -1 && d.top2 ==MaxDoubleSize { return true } else { return false } } // 返回s的元素个数,即栈的长度 func (d *DoubleStack) Length() int { return (d.top1 + 1) + (MaxDoubleSize-1-d.top2) } // 插入元素e为新的栈顶元素,栈满返回error func (d *DoubleStack) Push(e SElemType, stackNum int) error { if d.top1 + 1 == d.top2 { return errors.New("stack is full") } // 栈1有元素进栈 if stackNum == 1 { d.top1++ d.data[d.top1] = e } else if stackNum ==2 { // 栈2有元素进栈 d.top2-- d.data[d.top2] = e } return nil } // 若栈不空,则删除d的栈顶元素 用e返回其值,否则返回error func (d *DoubleStack) Pop(stackNum int) (e SElemType,err error) { if stackNum == 1 { if d.top1 == -1 { return 0, errors.New("stack is empty") //栈1为空,已溢出 } e = d.data[d.top1] d.top1-- } else if stackNum == 2 { if d.top2 == MaxDoubleSize { return 0, errors.New("stack is empty") //栈2为空,已溢出 } e = d.data[d.top2] d.top2++ } return } //遍历栈 func (d *DoubleStack) Traverse() { for i:=0; i <= d.top1 ; i++ { fmt.Println(d.data[i]) } for i:=d.top2; i < MaxDoubleSize ; i++ { fmt.Println(d.data[i]) } } func TestDoubleStack() { var s DoubleStack s.InitStack() for j:=1;j <= 5 ; j++ { s.Push(SElemType(j),1) } for j:=MaxDoubleSize;j >= MaxDoubleSize-2 ; j-- { s.Push(SElemType(j),1) } fmt.Println("栈中的元素为:") s.Traverse() e, _ := s.Pop(1) fmt.Println("弹出的元素为:", e) fmt.Println("栈是否为空:", s.IsEmpty()) fmt.Println("栈的长度:", s.Length()) s.ClearStack() fmt.Println("栈是否为空:", s.IsEmpty()) }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 数据结构 – 用于构建文件系统的数据结构?
- 荐 用Python解决数据结构与算法问题(三):线性数据结构之栈
- 数据结构和算法面试题系列-C指针、数组和结构体
- 请问二叉树等数据结构的物理存储结构是怎样的?
- 数据结构——单链表
- 常用数据结构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序员代码面试指南:IT名企算法与数据结构题目最优解
左程云 / 电子工业出版社 / 2015-9 / 79.00元
这是一本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失。“刷”完本书后,你就是“题王”!__eol__本书采用题目+解答的方式组织内容,并把面试题类型相近或者解法相近的题目尽量放在一起,读者在学习本书时很容易看出面试题解法之间的联......一起来看看 《程序员代码面试指南:IT名企算法与数据结构题目最优解》 这本书的介绍吧!