Sobes.tech
Junior

Ի՞նչ տվյալների կառուցվածքներ կան:

sobes.tech AI

Պատասխան AI-ից

Տվյալների կառուցվածքները բաժանվում են երկու հիմնական կատեգորիաների.

  1. Գծային: Էլեմենտները դասավորված են հաջորդականությամբ:

    • Արrey (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): Զույգեր՝ բանալի-արժեք, օգտագործելով hash-ֆունկցիա արագ որոնման համար:
      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); // Դուբլիկատը չի ավելացվի