Auditoriski 6 Stebla 1

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 25

6

, ,
,
. ,
, .
n1, n2,...nk, ni-1 ni, i [2,k]
ni ni-1
: , B, K, E, F.
.
: H, M.

() (
) .
: , B, 2.
e
.
: 3.
.
: 2.

() ,
. .
: K, L, F, G, M, I J
B, C, D, E H
- (
,
. .)
- ( ),
.



, ,

.
.
.
-


:
a i 2 i-1, i1.
a k 2k-1, k 1.
3 :
INORDER
PREORDER
POSTORDER

LOD
OLD
LDO

(, , )
(, , )
(, , )

Inorder : 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20


Preorder: 15, 6, 3, 2, 4, 7, 13, 9, 18, 17, 20
Postorder: 2, 4, 3, 9, 13, 7, 6, 17, 20, 18, 15

publicclassBinaryTree{
privateNoderoot;
publicvoidBinaryTree(){
root=null;
}
}

privatestaticclassNode{
Nodeleft;
Noderight;
intdata;
Node(intnewData){
left=null;
right=null;
data=newData;
}
}


1
preorder inorder ,
.
inorder postorder , preorder postorder.
:
OLD
LOD
LDO

preorder
inorder
postorder

ABCDEFGHIJKL
DCBEAGHFJILK
DCEBHGJLKIFA


1. preorder inorder:
K A. A inorder . A inorder
. preorder
.
. ( )
( ):
preorder: BCDE - B
Inorder: DCBE - DC
Prorder: CD
Inorder: DC - D C
( ):
preorder: FGHIJKL
inorder: GHFIJLK
preorder: GH IJKL preorder: KL
inorder: GH JILK inorder: LK
o .

2. inorder postorder:
postorder: LDO: DCEBHGJLKIFA - A
,
inorder: LOD: DCBEAGHFJ ILK - inorder

postorder: DCEB
inorder: DCBE
postorder: DC
inorder: DC - D C
.

3. preorder postorder:

. :

a 2.
PREODRER, INORDER POSTORDER .
:
inorder
A*BC^D+E/F
infix
preorder
+-*AB^CD/EF
prefix
postorder
AB*CD^-EF/+
postfix

privatestaticclassNode
{
Nodeleft;
Noderight;
intdata;
Node(intnewData){
left=null;
right=null;
data=newData;
}
}

publicvoidinorder(Nodenode)
{
if(node==null)return;
inorder(node.left);
System.out.print(node.data);
inorder(node.right);

}
publicvoidpreorder(Nodenode)
{
if(node==null)return;
System.out.print(node.data);
preorder(node.left);
preorder(node.right);

}
publicvoidpostorder(Nodenode)
{
if(node==null)return;
postorder(node.left);
postorder(node.right);
System.out.print(node.data);
}

a 3. INORDER
. .
:

publicvoidinorderUsingStack(Nodet){
StackLists=newStackList();//prazenmagacin
Nodep;
p=t;//sepocnuvasopodkoren
while(1){
//odimedokrajvolevanasoka
while(p!=NULL){
//akop!=NULLimalevopodsteblo
s.push(p);
//vomagacinsesmestuvaadresatanap
p=p.left;//odinalevotopodsteblo
}
//akomagacinoteprazen,celotostebloeizminato
if(s.isEmpty())break;
p=s.top;
System.out.print(p.data);
s.pop();
//odinadesnotopodstebloipovtorijaposapkata
//akoimalevopodsteblo
p=p.right;
}
}

a 4.
.
:

publicintinsideNodes(Nodet){
if((t==null)||(t.left==null)&&(t.right==null))
return0;
else
//postorder
return(insideNodes(t.left)+insideNodes(t.right)+1);
}

a 5. .
:

publicintlifes(Nodet){
if(t!=null)
if((t.left==null)&&(t.right==null))
return1;
else
return(lifes(t.left)+lifes(t.right));
else
return0;
}

a 6. ,
.
:

publicintmaxDepth(){
return(maxDepth(root));
}
privateintmaxDepth(Nodenode){
if(node==null){
return(0);
}
else{
intlDepth=maxDepth(node.left);
intrDepth=maxDepth(node.right);
return(Math.max(lDepth,rDepth)+1);
}
}

a 7.
.
. .
:

publicvoidmirror(){
mirror(root);
}
privatevoidmirror(Nodenode){
if(node!=null){
//preslikajgisimericnolevotoidesnotopodsteblo
mirror(node.left);
mirror(node.right);
//smenigipokazuvacitezaovojjazel
Nodetemp=node.left;
node.left=node.right;
node.right=temp;
}
}


null
( ).
n -null : n-1. : 2n,
null :
2n-(n-1)=n+1
NULL
.. .
: inorder
If ptr.left_child e null,
ptr inorder .
If ptr.right_child null,
ptr inorder .
.

privatestaticclassNode{
Nodeleft;
Noderight;
intdata;
charltag,rtag;

Node(intnewData){
left=null;
right=null;
data=newData;
}
}

1 Y = e x .
.
:

p.left e null (
) : p.left = Q, Q
(inorder).
p.ltag=- , P.ltag=+ . (
)
.


2
inorder , inorder .
:
inorder
:CBDAFGE
publicNodepreth(Nodep){
//akonalevoeniska
//smegonasleprethodnikot
if(p.ltag==-)
1. p. returnp->left;
p //inakuodinalevoodp

p=p.left;
.
while(p.rtag==+)//akoevrska
//odinadesnosedodekaimavrski
p=p.right;
//vratigoprethodnikotnap
returnp;
}

p. p
.

publicNodenasled(Nodep){
//akonadesnoeniska
//smegonaslenaslednikot
if(p.rtag==-)
returnp.right;
//inakuodinadesnoodp
p=p.right;
while(p.ltag==+)//akoevrska
//odinalevosedodekaimavrski
p=p.left;
//vratigonaslednikotnap
returnp;
}

You might also like