Implemented swapping for the linked liste.

This commit is contained in:
Andrey Parhomenko 2023-07-21 20:51:24 +03:00
parent 63bff23ca4
commit 49635e09a3
2 changed files with 19 additions and 0 deletions

View file

@ -15,6 +15,8 @@ func main() {
ll.Append("four") ll.Append("four")
ll.Push("minus one") ll.Push("minus one")
ll.Swap(1, 3)
for p := range ll.Chan() { for p := range ll.Chan() {
fmt.Println(p.K, p.V) fmt.Println(p.K, p.V)
} }

View file

@ -75,6 +75,23 @@ func (ll *LinkedList[V]) Set(i int, v V) (bool) {
return true return true
} }
func (ll *LinkedList[V]) Swap(i1, i2 int) {
if i1 == i2 {
return
}
max := ll.ln - 1
if i1 < 0 || i2 < 0 || i1 > max || i2 > max {
panic("index out of range")
}
el1, _ := ll.GetEl(i1)
el2, _ := ll.GetEl(i2)
el1.value, el2.value =
el2.value, el1.value
}
// Deletes the element by its index. // Deletes the element by its index.
func (ll *LinkedList[V]) Delete(i int) (bool) { func (ll *LinkedList[V]) Delete(i int) (bool) {
if ll.ln <= i { if ll.ln <= i {