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 bug
larni 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 array
ni 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 node
larga 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 sibling
s 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