Professional Documents
Culture Documents
Tree Representation
A. General Tree Representation
هﻨﺎﻟﻚ ﻋﺪة ﻃﺮق ﻟﺘﻤﺜﻴﻞ اﻷﺷﺠﺎر اﻻﻋﺘﻴﺎدﻳﺔ ﻣﻨﻬﺎ-:
.1اﺳﺘﺨﺪام ﻋﺪد ﻣﻦ اﻟﻤﺆﺷﺮات ﺑﻘﺪر اآﺒﺮ ﻋﺪد ﻣﻦ اﻟﻔﺮوع
ﻼ اﻟﻌﻘ ﺪة
ﺣﻴﺚ ﻟﻜﻞ ﻋﻘﺪة ﻓﻲ اﻟﺸﺠﺮة ﻋﺪد ﻣﻦ اﻷﺑﻨﺎء وﺑﺎﺳﺘﺨﺪام اﻟﻘﻮاﺋﻢ اﻟﻤﻮﺻﻮﻟﺔ ﻟﺘﻤﺜﻴﻞ ﻣﺜﻞ ﺗﻠﻚ اﻷﺷﺠﺎر ﻓﻴﺠﺐ ﺗﺤﺪﻳﺪ ﻣﺆﺷﺮ ﻟﻜﻞ اﺑﻦ ﻓﻤﺜ ً
اﻟﺘﻲ ﻟﻬﺎ اﺑﻦ واﺣﺪ ﺗﺤﺘﺎج ﻣﺆﺷﺮ واﺣﺪ واﻟﻌﻘﺪة اﻟﺘﻲ ﻟﻬﺎ اﺑﻨﺎن ﺗﺤﺘﺎج ﻣﺆﺷﺮﻳﻦ وهﻜﺬا .وهﺬﻩ اﻟﺸﺠﺮة )اﻟﻘﺎﺋﻤﺔ اﻟﻤﻮﺻﻮﻟﺔ( ﻳﺠﺐ ان ﻧﻌﺮف ﻓﻴﻬ ﺎ
ﻋﺪد ﻣﻦ اﻟﻤﺆﺷﺮات ﺑﻘﺪر اآﺒﺮ ﻋﺪد ﻣﻦ اﻷﺑﻨﺎء وﺑﺬﻟﻚ ﻓﺎن ﻟﻜﻞ ﻋﻘﺪة ﺳﻴﺼﺒﺢ ﻋﺪد ﻣﻦ اﻟﻤﺆﺷ ﺮات ﻣﺴ ﺎوي ﻷآﺒ ﺮ ﻋ ﺪد ﻣ ﻦ اﻷﺑﻨ ﺎء ﺣﺘ ﻰ وان
آﺎﻧﺖ ﺗﺤﺘﻮي ﻋﻠﻰ ﻋﺪد اﻗﻞ ﻣﻦ اﻟﻔﺮوع وﺑﺬﻟﻚ ﺳﻴﺤﺪث ﺿﻴﺎع آﺒﻴﺮ ﻓﻲ اﻟﻤﺴﺎﺣﺔ اﻟﺨﺰ ﻧﻴﺔ.
ﻣﺜﺎل-:
A
B C
D G
E F
H
ﻧﻼﺣﻆ إن اآﺒﺮ ﻋﺪد ﻣﻦ اﻟﻤﺴ ﺎرات اﻟﺨﺎرﺟ ﺔ ﻣ ﻦ ﻋﻘ ﺪ اﻟﺸ ﺠﺮة أﻋ ﻼﻩ = 3وﺑ ﺬﻟﻚ ﺗﻌ ﺮف ﺟﻤﻴ ﻊ ﻋﻨﺎﺻ ﺮ اﻟﻘﺎﺋﻤ ﺔ اﻟﻤﻮﺻ ﻮﻟﺔ ﺑﻌ ﺪد ﻣﺆﺷ ﺮات
ﻣﺴﺎوي إﻟﻰ ﺛﻼﺛﺔ .
* Class
}public Data as string{or any other type
public link1 as node
public link2 as node
public link3 as node
********************'
Dim tree as node
1
Tree
B L1 L2 L3
C L1 L2 L3
H L1 L2 L3
null ﻻ ﻣﻨﻬﺎ
ﻣﻼﺣﻈﺔ -:آﻞ اﻟﻤﺆﺷﺮات اﻟﻐﻴﺮ ﻣﺴﺘﺨﺪﻣﺔ أﻋﻼﻩ ﻧﻀﻊ ﺑﺪ ً
.2اﺳﺘﺨﺪام ﻣﺆﺷﺮﻳﻦ ﻟﻜﻞ ﻋﻘﺪة
ﺣﻴﺚ ﻳﻜﻮن ﻟﻜﻞ ﻋﻘﺪة ﻣﺆﺷﺮﻳﻦ
* ﻣﺆﺷﺮ إﻟﻰ اآﺒﺮ اﻷﺑﻨﺎء ﻓﻲ اﻟﻴﺴﺎر
* ﻣﺆﺷﺮ ﻳﺸﻴﺮ إﻟﻰ اﻻخ اﻟﺘﺎﻟﻲ
أي ان ﺷﻜﻞ اﻟﻌﻘﺪة هﻮ
Data Son Brother
* Class
}public Data as string{or any other type
public Son as node
public brother as node
********************'
Dim tree as node
Tree
D S b E S b F S b G S b
2
.3اﺳﺘﺨﺪام ﺛﻼث ﻣﺆﺷﺮات ﻟﻜﻞ ﻋﻘﺪة
ﺣﻴﺚ ﻳﻜﻮن ﻟﻜﻞ ﻋﻘﺪة ﺛﻼث ﻣﺆﺷﺮات هﻲ -:
* ﻣﺆﺷﺮ إﻟﻰ اآﺒﺮ اﻷﺑﻨﺎء ﻓﻲ اﻟﻴﺴﺎر
* ﻣﺆﺷﺮ ﻳﺸﻴﺮ إﻟﻰ اﻻخ اﻟﺘﺎﻟﻲ
* ﻣﺆﺷﺮ ﻳﺸﻴﺮ اﻟﻰ اﻻب
أي ان ﺷﻜﻞ اﻟﻌﻘﺪة هﻮ
Data Son Brother Father
* Class
}public Data as string{or any other type
public Son as node
public brother as node
public father as node
********************'
Dim tree as node
Tree
D S b f E S b f F S b f G S b f
3
وﻧﺨﺰن ﻋﻘﺪ ﺗﻠﻚ اﻟﻤﺼﻔﻮﻓﺔ آﻤﺎ ﻳﺄﺗﻲ-:
* ﻧﺨﺰن ﻋﻘﺪة اﻟﺠﺬر ﻓﻲ اﻟﻤﻮﻗﻊ اﻷول
* ﻧﺨﺰن ﻋﻘﺪة اﻻﺑﻦ اﻷﻳﺴﺮ ﻓﻲ اﻟﻤﻮﻗﻊ )(2*1
* ﻧﺨﺰن ﻋﻘﺪة اﻻﺑﻦ اﻷﻳﻤﻦ ﻓﻲ اﻟﻤﻮﻗﻊ )(2*1+1
ﻣﺜﺎل -:ﻣﺜﻞ اﻟﺸﺠﺮة اﻟﺜﻨﺎﺋﻴﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ
A
C
B
J
D E F
A
B C
4
ﺟﺬر أﻳﺴﺮ اﻳﻤﻦ
A B C
B D E
E H -
C F G
F I J
I - -
J - -
G - -
D - -
H - -
* Class
}public Data as string{or any other type
public Lchild as node
public Rchild as node
********************'
Dim tree as node
5
ﻣﺜﺎل -:ﻣﺜﻞ اﻟﺸﺠﺮة اﻟﺜﻨﺎﺋﻴﺔ اﻟﺘﺎﻟﻴﺔ ﺑﺎﺳﺘﺨﺪام اﻟﻘﻮاﺋﻢ اﻟﻤﻮﺻﻮﻟﺔ
A
B C
GJ
Tree
* Class
}public Data as string{or any other type
public Lchild as node
public Rchild as node
public Father as node
********************'
Dim tree as node
6
ﻣﺜﺎل -:ﻣﺜﻞ اﻟﺸﺠﺮة اﻟﺜﻨﺎﺋﻴﺔ اﻟﺴﺎﺑﻘﺔ ﺑﺎﺳﺘﺨﺪام اﻟﻘﻮاﺋﻢ اﻟﻤﻮﺻﻮﻟﺔ ذات ﺛﻼث ﻣﺆﺷﺮات
Tree
Lc D Rc f Lc E Rc f Lc F Rc f
7