Sobes.tech
Junior

რა მონაცემთა სტრუქტურებია?

sobes.tech AI

პასუხი AI-სგან

Мәгълүмат структуралары ике төп категориягә бүленә:

  1. Линейный: Элементлар тәртипле рәвештә урнашкан.

    • Массив (Array): Тотрыклы зурлык, турыдан-туры индекс буенча керү.
      int[] numbers = { 1, 2, 3, 4, 5 }; // Мисал игълан итү
      
    • Тизмек (List): Динамик зурлык, элементлар өстәлә һәм бетерелә.
      System.Collections.Generic.List<string> names = new System.Collections.Generic.List<string>();
      names.Add("Alice");
      names.Add("Bob");
      
    • Бәйләнешле тизмек (Linked List): Элементлар (түйнәкләр) киләсе (һәм, мөмкин, алдагы) элементка сылтама итә.
      • Бер яклы
      • Ике яклы
      System.Collections.Generic.LinkedList<char> letters = new System.Collections.Generic.LinkedList<char>();
      letters.AddLast('A');
      letters.AddLast('B');
      
    • Стек (Stack): Соңгы килгән - беренче чыгарыла (LIFO).
      System.Collections.Generic.Stack<int> stack = new System.Collections.Generic.Stack<int>();
      stack.Push(10); // Элемент өстәү
      int item = stack.Pop(); // Элементны чыгару һәм кайтару
      
    • Очередь (Queue): Беренче килгән - беренче чыгарыла (FIFO).
      System.Collections.Generic.Queue<string> queue = new System.Collections.Generic.Queue<string>();
      queue.Enqueue("Task 1"); // Элемент өстәү
      string task = queue.Dequeue(); // Элементны чыгару һәм кайтару
      
  2. Нелинейный: Элементлар тәртипле түгел.

    • Агач (Tree): Иерархик структура, тамыр һәм балалары белән.
      • Икеүслек агач
      • B-агач
      • Кызыл-сары агач
      • AVL агачы
    • Граф (Graph): Вершиннәр (узелләр) һәм алар арасындагы бәйләнешләр.
      • Юнәлешле (Directed)
      • Юнәлешсез (Undirected)
    • Hash-таблица (Hash Table) / Сүзлек (Dictionary): ачкыч-мәгънә парларын саклый, тиз эзләү өчен хеш-функция кулланыла.
      System.Collections.Generic.Dictionary<string, int> ageByName = new System.Collections.Generic.Dictionary<string, int>();
      ageByName.Add("Charlie", 30);
      int age = ageByName["Charlie"]; // Тиз керү
      
    • Җыелма (Set): Уникаль элементлар җыелмасы, билгеле бер тәртипсез.
      System.Collections.Generic.HashSet<int> uniqueNumbers = new System.Collections.Generic.HashSet<int>();
      uniqueNumbers.Add(5);
      uniqueNumbers.Add(10);
      uniqueNumbers.Add(5); // Күчермә өстәлмәс