1// SPDX-License-Identifier: ISC 2// Copyright (c) 2014-2020 Bitmark Inc. 3// Use of this source code is governed by an ISC 4// license that can be found in the LICENSE file. 5 6// Package avl - an AVL balanced tree with the addition of parent 7// pointers to allow iteration through the nodes 8// 9// Note: an individual tree is not thread safe, so either access only 10// in a single go routine or use mutex/rwmutex to restrict 11// access. 12// 13// The base algorithm was described in an old book by Niklaus Wirth 14// called Algorithms + Data Structures = Programs. 15// 16// This version allows for data associated with key, which can be 17// overwritten by an insert with the same key. Also delete no does 18// not copy data around so that previous nodes can be deleted during 19// iteration. 20package avl 21