Ko'p ishlatiladigan terminlar izohi

bug

Bug bu dasturdagi kutilmagan xatolik.

debug (debugging)

Dasturni xatolarini aniqlash uchun kod bloklarini qadamma qadam ishga tushirib tekshirish. Debugging jarayoni dasturdagi taxmin qilib topib bolmaydigan buglarni va ularni sababini qidirib topishga yordam beradi.

pointer

Pointer bu asosiy ma'lumot saqlanadigan xotira manzilini saqlovchi o'zgaruvchi. U ko'rsatuvchi xotira manzilini to'liq boshqarish imkonini beradi. Odatda C/C++ kabi low-level tillarda ishlatiladi. C#/Java kabi high-level tillarda to'g'ridan to'g'ri pointerlar ishlatish tavsiya etilmaydi.

reference

C#/Java kabi high-level tillarda heap xotira manzilidagi asosiy ma'lumotni ko'rsatuvchi o'zgaruvchi. U xotira manzilini to'g'ridan-to'g'ri manipulatsiya qilish imkonini bermaydi. Reference texnik jihatdan pointerga o'xshab ketadi.

.NET muhitida referencelar xotiraga qanday bog'lanishi va ular bog'langa xotira manzillarini boshqarishni CLR bajaradi.

frequency

Chastota - biror hodisa yoki elementning takrorlanish tezligi.


data structure

Ma'lumotlarni saqlash, o'qish va o'zgartirish qulay va tez bo'lishi uchun ularni sistematik tartibga solish usuli. Data structures - katta ma'lumotlar to'plamidan maxsuslarini qidirish, tartiblash va joylashtirishni osonlashtiradi. Quyidagilar data structurega misollar:

  • array
  • linked list
  • stack
  • queue
  • tree

traverse

Data structurelar kontekstida shu strukturani har bir elementiga birma-bir murojat qilib qandaydir operatsiya bajarishni anglatadi. Masalan, loop orqali arrayni har bir elementiga murojat qilish array traversing deb ataladi.

node

Node - linked list, stack, queue, tree kabi data structurelarni asosi hisoblanadi. Har bir node asosiy ma'lumotdan tashqari strukturadagi boshqa nodelarga reference yoki linkni o'z ichiga oladi.

root

Tree (daraxtsimon) data strukturalarida eng yuqoridagi node. Tree data strukturani traverse qilish root nodedan boshlanadi.

parent

Tree (daraxtsimon) data strukturalarda o'zidan pastda bir yoki undan ortiq child-nodega ega bo'lgan node parent node deb ataladi.

child

Tree (daraxtsimon) data strukturalarda parent-nodega ega bo'lgan node child node deb ataladi. Ma'lumot o'rnida, root node hech qachon child ro'lida bo'la olmaydi. Sababi unda parent-node yo'q.

leaf

Tree (daraxtsimon) data strukturalarda birorta ham child-nodega ega node leaf node deb ataladi. Boshqacha qilib aytganda leaf shu branch/*(shox)*ni yakuni bo'ladi.

subtree

Tree (daraxtsimon) data strukturalarida bitta node va uni barcha childlaridan tashkil topgan mini-tree subtree deb ataladi.

sibling

Tree (daraxtsimon) data strukturalarida umumiy parent-nodega ega bo'lgan barcha bitta nodelar siblings deb ataladi.

binary tree

Tree (daraxtsimon) data strukturalarida har bir nodei ko'pi bilan 2ta child**ga ega bo'lgan strukturalar binary tree deb ataladi. Child nodelar right node va left node deb ataladi.

balanced tree

Tree (daraxtsimon) data strukturalarida istalgan nodeni olganda uni o'ng va chapidagi subtree** balandligi uzog'i bilan bitta nodega farq qilsa, bunday tree balanced tree deb ataladi.

complete tree

Har bir qavati (oxirgi qavatdan tashqari) to'liq to'ldirilgan tree complete tree deb ataladi. Oxirgi qatorda yangi nodelar chapdan o'ngga qarab qo'shib boriladi.

Namuna 1 Namuna 2
     1
   /   \
  2    3
     1
   /   \
  2    3
 / \
4   5

heap property

Binary Heap data strukturasi kontekstida har bir node tegishli joyda bo'lishini ta'minlovchi shartlarga heap property deb ataladi.

Min-heap Max-heap
har bir node uchun parent-node qiymati child-nodelar qiymatidan KICHIK yoki teng bo'lishi shart. har bir node uchun parent-node qiymati child-nodelar qiymatidan KATTA yoki teng bo'lishi shart.
       2
    /    \
   7     5
 /   \ 
10    8
      15
    /    \
  10     3
 /   \ 
5     7

recursion

Dasturda funksiya o'z tanasida o'zini chaqirishiga recursion deb ataladi. Loop ishlatmasdan o'zini-o'zi chaqirish recursive funksiyalar muammoni kichik muammochalarga bo'lib tashlab, bir xil logikani qayta-qayta ishlatib hal qiladi.

public int Sum(int n)
{
    if (n == 0)
        return 0;

    return n + Sum(n - 1);
}

CLR

TODO