Sobes.tech
Junior — Middle

Ҳамоҳангии маълумотҳои Stack-ро чӣ гуна ба назар мерасонад?

sobes.tech AI

Ҷавоб аз AI

Тугма (Stack) — бу маълумотлар тузилмаси бўлиб, у LIFO (Last In, First Out) принципига асосланган, яъни сўнгги қўшилган элемент биринчи чиқади.

Фойдалари:

  • Ижро этиш ва фойдаланиш осон.
  • Юқори қавсдаги элементга тез кириш (push, pop, peek операциялари O(1) вақтда бажарилади).
  • Дарахтни ўтказиш, амалларни бекор қилиш, парсинг каби вазифалар учун жуда мос.

Камчиликлари:

  • Чегараланган кириш: фақат юқори қавсдаги элемент билан ишлаш мумкин, тасодифий кириш йўқ.
  • Тугма ҳажми чегараланган бўлиши мумкин (масалан, дастурда чақирувлар тугмаси), бу тўлдиришга олиб келиши мумкин.

Go тилида мисол:

package main
import "fmt"

type Stack []int

func (s *Stack) Push(v int) {
    *s = append(*s, v)
}

func (s *Stack) Pop() (int, bool) {
    if len(*s) == 0 {
        return 0, false
    }
    index := len(*s) - 1
    elem := (*s)[index]
    *s = (*s)[:index]
    return elem, true
}

func main() {
    var s Stack
    s.Push(10)
    s.Push(20)
    fmt.Println(s.Pop()) // 20, true
    fmt.Println(s.Pop()) // 10, true
}