zoukankan      html  css  js  c++  java
  • 2个栈实现队列功能


    type stack struct { nums []
    int }
    // type queue struct { s1
    *stack s2 *stack } //初始化栈 func newStack() *stack { return &stack{ nums: []int{}, } } //初始化队列 func newQueue() *queue { return &queue{ s1: newStack(), s2: newStack(), } } //栈的操作 func (s *stack) push(n int) { s.nums = append(s.nums, n) }
    //后进先出 func (s
    *stack) pop() int { if s.isEmpty() { return -1 } var res = s.nums[len(s.nums)-1] //取出最后一个 s.nums = s.nums[:len(s.nums)-1] return res } func (s *stack) isEmpty() bool { if len(s.nums) == 0 { return true } return false } //入队 数据放入s1中 func (q *queue) push(n int) { q.s1.push(n) } //出队 s2中栈顶值就是队列第一个值 func (q *queue) pop() int { if q.s2.isEmpty() { for !q.s1.isEmpty() { q.s2.push(q.s1.pop()) //把所有s1值取出,放入s2中 } } return q.s2.pop() } //返回队列中第一个值 func (q *queue) Get() int { if q.s2.isEmpty() { //检查s2是否空 if q.s1.isEmpty() { //检查s1是否空 return -1 //若s1、s2都空 } return q.s1.nums[0] //若s2空,s1不空 } return q.s2.nums[len(q.s2.nums)-1]//若s2不空 }
  • 相关阅读:
    D3学习笔记一
    Python生成pyc文件
    Linux上用户之间对话
    uwsgi错误invalid request block size
    Nginx的Permission denied错误
    CentOS7关闭防火墙
    CentOS7.0安装Nginx
    应用IBatisNet+Castle进行项目的开发
    再论IBatisNet + Castle进行项目的开发
    DotNet软件开发框架
  • 原文地址:https://www.cnblogs.com/ashion89/p/13796635.html
Copyright © 2011-2022 走看看