当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

GoDS

Go 数据结构包
授权协议 BSD
开发语言 Google Go
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 越伯寅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

GoDS 是一个 Go 语言实现的各种数据结构的工具包,包括:

  • Containers (Sets, Lists, Stacks, Maps, Trees),
  • Sets (HashSet, TreeSet, LinkedHashSet),
  • Lists (ArrayList, SinglyLinkedList, DoublyLinkedList),
  • Stacks (LinkedListStack, ArrayStack),
  • Maps (HashMap, TreeMap, HashBidiMap, TreeBidiMap, LinkedHashMap),
  • Trees (RedBlackTree, AVLTree, BTree, BinaryHeap),
  • Comparators,
  • Iterators,

示例代码:

package main

import (
	"github.com/emirpasic/gods/lists/arraylist"
	"github.com/emirpasic/gods/utils"
)

func main() {
	list := arraylist.New()
	list.Add("a")                         // ["a"]
	list.Add("c", "b")                    // ["a","c","b"]
	list.Sort(utils.StringComparator)     // ["a","b","c"]
	_, _ = list.Get(0)                    // "a",true
	_, _ = list.Get(100)                  // nil,false
	_ = list.Contains("a", "b", "c")      // true
	_ = list.Contains("a", "b", "c", "d") // false
	list.Swap(0, 1)                       // ["b","a",c"]
	list.Remove(2)                        // ["b","a"]
	list.Remove(1)                        // ["b"]
	list.Remove(0)                        // []
	list.Remove(0)                        // [] (ignored)
	_ = list.Empty()                      // true
	_ = list.Size()                       // 0
	list.Add("a")                         // ["a"]
	list.Clear()                          // []
	list.Insert(0, "b")                   // ["b"]
	list.Insert(0, "a")                   // ["a","b"]
}

 

  • 介绍 gods-pan中文名:码良,是一个基于vue的高扩展在线网页制作平台。 使用该平台,用户无需掌握复杂的编程技术,只需通过简单拖拽、少量配置即可快速制作精美的页面,并且支持自定义组件,添加脚本,数据统计。 同时,该平台也为开发者提供了完备的编程接入能力,通过脚本和组件的形式获得强大的组件行为和交互控制能力。 官网: https://godspen.ymm56.com/ 使用手册: https

 相关资料
  • 顺序结构 顺序栈(Sequence Stack) SqStack.cpp 顺序栈数据结构和图片 typedef struct { ElemType *elem; int top; int size; int increment; } SqStack; 队列(Sequence Queue) 队列数据结构 typedef struct { ElemType * elem; int fron

  • 数据结构 Collection 和 Sequence Clojure 常用的数据结构有 List, Map, Vector, Set. 他们都属于 Collection, 之间的关系大致是这样: 属于 Clojure 当中实现的数据结构都是 Collection. 编码当中会遇到 Host 平台的数据类型, 不属于 Collection. 实现了 Collection 的接口的数据结构都支持这些函

  • 1 红黑树 红黑树与AVL的比较: AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多; 红黑是用非严格的平衡来换取增删节点时候旋转次数的降低; 所以简单说,如果你的应用中,搜索的次数远远大于插入和删除,那么选择AVL,如果搜索,插入删除次数几乎差不多,应该选择RB。 红黑树详解: https://xieguanglei.github.io/blog/post/

  • 数据结构(Data Structures)基本上人如其名——它们只是一种结构,能够将一些数据聚合在一起。换句话说,它们是用来存储一系列相关数据的集合。 Python 中有四种内置的数据结构——列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。我们将了解如何使用它们,并利用它们将我们的编程之路变得更加简单。 列表 列表 是一种用于保存一系列有序项目的集合,也就是说,

  • 数据结构 在理解框架之前,需要先了解一下调度器框架所需要的数据结构。 通常的操作系统中,进程池是很大的(虽然在 ucore 中,MAX_PROCESS 很小)。在 ucore 中,调度器引入 run-queue(简称rq,即运行队列)的概念,通过链表结构管理进程。 由于目前 ucore 设计运行在单CPU上,其内部只有一个全局的运行队列,用来管理系统内全部的进程。 运行队列通过链表的形式进行组织。

  • 数据结构是计算机中存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。 目录 ​数组​ ​列表​ ​栈​ ​队列​ ​链表​ ​映射​ ​散列​ ​集合​ ​树​ ​图​

  • 编程语言都有内置的数据结构,但各种编程语言的数据结构常有不同之处。 动态类型 JavaScript 是一个弱类型的动态语言,在定义变量时不会与特定的数据类型进行关联,这使得它可以用任何类型的数据进行定义和重定义: var foo = 42; // 一开始 `foo` 是数字类型foo = 'bar'; // 这时 `foo` 是字符串类型foo = true;

  • 数据结构相关基本是现场面试中出现频率最高的问题。 因为现场面试的时间限制,更难的问题需要大量的思考时间,所以一般只要求需要阐述思路(比如动态规划); 而数据结构相关的问题,因为有很强的先验知识,通常要求手写代码。 本专题只收录基础数据结构相关问题,不包括高级数据结构及数据结构的设计,比如线段树或者 LRU 缓存,这些问题可以参考数据结构_Advanced。 二叉树的深度 二叉树的深度 - 牛客 C