Дарахтларнинг таркиби.
У қуйидаги шаклга ега:
tree[branch -> tree1]
tree дарахтнинг барча шохлари tree1 дарахти билан алмаштирилади. Композициянинг ҳар хил турлари қуйида муҳокама қилинади. Дарахт илдизига ўғил қўшиб.У қуйидаги шаклга ега:
tree [+tree1]
Дарахт дарахти 1 дарахт дарахтининг илдизига енг ўнг ўғли томонидан қўшилади. Бу фақат мумкин дарахт дарахт илдизи бир бўлмаса барг. Ўнг операнддаги дарахт мумкин операция ўзи бевосита тасвирланган бўлиши:
tree [+ rооt1{node1, node2}]
Дарахт тугунини ўчириш. У қуйидаги шаклга ега:
tree [ -branch]
branch tree дарахтидан олиб ташланади.
Дарахт тугунларига кириш функциялари.
first(node) - илдизи тугунчанинг чап ўғли бўлган дарахтни қайтаради.
parent(node)-илдизи тугуннинг енг ўнг ўғли бўлган дарахтни қайтаради
-next(node-)илдизи бир дарахтни қайтаради тугуннинг отаси
Vars(tree)-илдизи бир дарахтни қайтаради қўшни тугуннинг ўнг томонида
Дарахт вариантларига кириш учун функциялар ва / ёки.
- дарахт вариантларининг сонини қайтаради (филиаллари)
-дарахтнинг бир варианти бўлган дарахтни қайтаради (filial) tree рақам остида
-биринчи варянтни қайтаради дарахт (новдалар)нинг
-охирги варянтни қайтаради дарахт (новдалар)нинг.
-вар_трее қуйидаги дарахт (филиаллари) variant қайтаради
Дарахтда бир нечта операцияларни бажариш мумкин кетма-кет. Кейин бу операциялар вергул билан ажратилади ва улар ёзилган кетма-кетликда бажарилади
tree[leaf1->tree1,+tree1,leaf2->tree2]
tree[node1(...)->node1[+tree1],leaf10->tree2]
tree[node1{_, _}->tree1,node1(_x)->_x1]
Тил функцияларни тавсифлашга имкон беради. Функция фунcтион_наме сифатида ёзилган ([Лист_аргуменц]) = тело_фунcтионс.
Натижада, ҳар қандай функция қайтади дарахт. Функсиялар икки хил бўлиши мумкин: функсия бу 1 тугунни қайтаради (барг функцияси) ва дарахтни қайтарадиган функция (дарахт функцияси).
Барг вазифалари.
Барг функцияси битта баргни қайтаради (а дегенерацияланган дарахт) унда натижанинг функция бажарилиши қайд етилади. Кейин тугун тури бўлиши мумкин дарахт тавсифидаги функсияни чақирганда ўзгарди.
Масалан:
F(x)=sin(x);
d=(F(0));
Бу ерда F(x) sin(х)ни ҳисобловчи функсия;
d-номаълум илдиздан иборат дарахт ва бир япроқ номидаги 0(чунки Ф(0)=sin (0)=0).
Бошқа мисолни кўриб чиқинг:
pi=3,1415926535897932384626433832795;
F(x)=sin(x)+1;
d=(F(0){cos(pi),sin(pi)+cos(pi)*(2+1)(pi,2*pi)});
Бу мисолда тугун F(0)=0 ИЛИ тугун бўлиб, тугун sin(pi)+cos(pi)*(2+1)=–3 И-тугун бўлади.
Натижада, d=(0 {-1, -3(3.14, 6.28)}).
Do'stlaringiz bilan baham: |