آموزش ساختمان داده ها - بخش هفتم
TRANSCRIPT
![Page 1: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/1.jpg)
ساختمان داده ها
faradars.org/fvds9402
:مدرسفرشید شیرافکن
دانشگاه تهران دانشجوی دکتری (بیو انفورماتیک: دکتری( )کامپیوتر نرم افزار: کارشناسی و کارشناسی ارشد )
فصل هفتم
گراف
1
فرادرس
FaraDars.org
![Page 2: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/2.jpg)
ساختمان داده ها
faradars.org/fvds9402
تعریف
2
Gگراف = (V,E)،مجموعهدوشاملVوEاست.V:رئوسازغيرتهيومحدودمجموعهE:(يال)رئوسزوجازمجموعهاي
گرافانواع:جهت دار-1
باشد،داشتهاهميتمرتبزوجدرگرههاترتيب:جهت دارغیر-2
.باشدنداشتهاهميتيالهامجموعهدررأسدوجايآندركهگرافي
فرادرس
FaraDars.org
![Page 3: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/3.jpg)
ساختمان داده ها
faradars.org/fvds9402
تعریف
3
مثال
فرادرس
FaraDars.org
![Page 4: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/4.jpg)
ساختمان داده ها
faradars.org/fvds9402
درجه گراف
مثال
4
ab
cd
deg-(a) = 1
deg+(a) = 2
deg-(d) = 2
deg+(d) = 1
deg-(c) = 0
deg+(c) = 2
deg-(b) = 4
deg+(b) = 2فرادرس
FaraDars.org
![Page 5: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/5.jpg)
ساختمان داده ها
faradars.org/fvds9402
گرافچندگانه
.مجازباشد(Multi Edge)گرافيكهدرآنيالهايچندگانه
5
فرادرس
FaraDars.org
![Page 6: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/6.jpg)
ساختمان داده ها
faradars.org/fvds9402
گرافكامل
.آنرسمشدهباشديالهايگرافبدونجهتيكههمه
:يالهايتعدادn-1:هريکازگرههادرجه
6
2
)1( nn فرادرس
FaraDars.org
![Page 7: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/7.jpg)
ساختمان داده ها
faradars.org/fvds9402
گرافهمبند
.گرافيكهيکمسيربينهردوگرهآنوجودداشتهباشد:يکگرافناهمبند
وهميکvبهuهميکمسيرازv,uجهتداريكهبرايهرزوجگرهگراف: قوی همبند گراف .وجودداشتهباشدuبهvمسيراز
7
فرادرس
FaraDars.org
![Page 8: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/8.jpg)
ساختمان داده ها
faradars.org/fvds9402
(Bipartite)گرافدوقسمتي
مجموعهازنوديگرافايندريالهر.هستندVوUمستقلمجموعهدوبهبنديدستهقابلآننودهايكهگرافيUمجموعهدرنوديبهراVصورتبهمعموالراگرافاين.كندميوصلG=(V,U,E)دهندمينمايش.
8
v5
v1
v2
v3 v4
v6 v1 v6
v2v5
v3v4
فرادرس
FaraDars.org
![Page 9: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/9.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.داردفردطولبهسیکلدارایچون.نیستقسمتیدوزیرگراف•
9
فرادرس
FaraDars.org
![Page 10: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/10.jpg)
ساختمان داده ها
faradars.org/fvds9402
گراف دو قسمتی کامل
m=5,n=3:مثال•
10
فرادرس
FaraDars.org
![Page 11: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/11.jpg)
ساختمان داده ها
faradars.org/fvds9402
(subgraph)زیرگراف
:استكهH=(W,F)،يکگرافG=(V,E)يکزيرگرافازگراف
WV
and
FE
11
فرادرس
FaraDars.org
![Page 12: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/12.jpg)
ساختمان داده ها
faradars.org/fvds9402
نمایش گراف
(Adjacency matrices)ماتريسهمجواري-1
(Adjacency List)ليستهمجواري-2
12
فرادرس
FaraDars.org
![Page 13: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/13.jpg)
ساختمان داده ها
faradars.org/fvds9402
ماتریس همجواری
مثال
13
فرادرس
FaraDars.org
![Page 14: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/14.jpg)
ساختمان داده ها
faradars.org/fvds9402
لیست همجواری
ليستهمجواري
14
فرادرس
FaraDars.org
![Page 15: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/15.jpg)
ساختمان داده ها
faradars.org/fvds9402
(ماتريسبرخورد)مثال
راjراسiلبهاگرچنانچهباشد،ميستونوسطرباماتريسيکجهت،بدونگرافيکبرايماتريساين.بودخواهد1برابرjستونوiسطردرواقعدرايهكند،آنگاهتالقي
15
a
b
c
d
12
4
53
6
001110
111000
000101
010011
654321
M
VE
فرادرس
FaraDars.org
![Page 16: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/16.jpg)
ساختمان داده ها
faradars.org/fvds9402
Connectivity
16
•a
b
c
d
a
b
c
d
Weakly connected
no path from b to d.
Strongly connected
فرادرس
FaraDars.org
![Page 17: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/17.jpg)
ساختمان داده ها
faradars.org/fvds9402
پیمایش گراف
DFS)(عمقـاولپيمايش)عمقي-1 : Depth First Search)
BFS)(عرض-اولپيمايش)سطحي-2 : Breadth First Search)
.ميشوداستفادهصفازBFSپيمايشدروپشتهازDFSپيمايشدر
17
فرادرس
FaraDars.org
![Page 18: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/18.jpg)
ساختمان داده ها
faradars.org/fvds9402
(BFS)پيمايشسطحي
بهچپازگرهفرزندان)آنبامجاورگرههايكليهسپسوكردهصفواردراگرهابتداگره،يکازشروعبا.كنيمميدرجصفدررا(راست.كنيمميدرجراآنمجاورهايگرهوكردهحذفراصفازبعديعنصرحال.شوندپيمايشهاگرههمهتادادهادامهراعملاين
.نیستفردبهمنحصرسطحیپیمایش
18
فرادرس
FaraDars.org
![Page 19: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/19.jpg)
ساختمان داده ها
faradars.org/fvds9402
پيمايشسطحي
فرادرس
FaraDars.org
![Page 20: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/20.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.گرافزيررامشخصكنيدBFSيكيازپيمايشهاي
A B C D E F G H
20
فرادرس
FaraDars.org
![Page 21: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/21.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
مثال
21
فرادرس
FaraDars.org
![Page 22: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/22.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.رامشخصكنيد2گرافزيرباشروعازگرهشمارهBFSيكيازپيمايشهاي
2 , 6 , 1 , 3 , 7 , 5 , 4 , 8
22
2
16
731
573
457
845
84
8
فرادرس
FaraDars.org
![Page 23: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/23.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
r s t u
v w x y
فرادرس
FaraDars.org
![Page 24: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/24.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
sQ:
فرادرس
FaraDars.org
![Page 25: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/25.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
wQ: r
فرادرس
FaraDars.org
![Page 26: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/26.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
rQ: t x
فرادرس
FaraDars.org
![Page 27: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/27.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
Q: t x v
فرادرس
FaraDars.org
![Page 28: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/28.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
Q: x v u
فرادرس
FaraDars.org
![Page 29: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/29.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
Q: v u y
فرادرس
FaraDars.org
![Page 30: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/30.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
Q: u y
فرادرس
FaraDars.org
![Page 31: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/31.jpg)
ساختمان داده ها
faradars.org/fvds9402
r s t u
v w x y
Q: y
فرادرس
FaraDars.org
![Page 32: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/32.jpg)
ساختمان داده ها
faradars.org/fvds9402
1r s t u
v w x y
Q: Ø
فرادرس
FaraDars.org
![Page 33: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/33.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.گرافزيرمشخصكنيدبرايBFSچندپيمايش
A B C D E F
A D B C E F
A D B C F E
33
فرادرس
FaraDars.org
![Page 34: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/34.jpg)
ساختمان داده ها
faradars.org/fvds9402
سطحیتابع پیمایش
bfs(v){
front = rear = NULL;
cout << v;
visited[v] = TRUE;
addq ( &front , &rear , v );
while ( front) {
v = deleteq (&front);
for ( w = graph[v] ; w ; w = w->link )
if ( !visited[w -> vertex] ) {
cout << w -> vertex;
addq ( &front , &rear , w -> vertex );
visited[ w -> vertex ]=TRUE;
}}}
34
فرادرس
FaraDars.org
![Page 35: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/35.jpg)
ساختمان داده ها
faradars.org/fvds9402
(DFS)پيمايشعمقي
يمپيمايشعمقآخرينتاراچپسمتگرههايكليهسپسوكردهمالقاتراآنگره،يکازشروعبا.كنيمرههايگتمامياباشدنداشتههمجواريگرههيچكهشودمالقاتگرهايمتوالي،هايرفتنپاييندراگر
.دميشوتكرارفوقروندوميگيرندانجامباالسطحيکبهبرگشتباشد،شدهمالقاتآنهمجوار
.نيستفردبهمنحصرعمقيپيمايش
35
فرادرس
FaraDars.org
![Page 36: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/36.jpg)
ساختمان داده ها
faradars.org/fvds9402
Depth-First Search (DFS)
فرادرس
FaraDars.org
![Page 37: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/37.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.زيررامشخصكنيدگراف DFSيكيازپيمايشهاي
A B D F E C G
37
فرادرس
FaraDars.org
![Page 38: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/38.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.زيررامشخصكنيدگراف DFSيكيازپيمايشهاي
a b c g d e f i h
38
فرادرس
FaraDars.org
![Page 39: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/39.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.گرافزيرمشخصكنيدبراي DFSسهپيمايش
1 , 4 , 7 , 8 , 9 , 6 , 5 , 2 , 3
1 , 2 , 3 , 6 , 9 , 8 , 7 , 4 , 5
1 , 2 , 3 , 6 , 5 , 4 , 7 , 8 , 9
39
فرادرس
FaraDars.org
![Page 40: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/40.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.گرافزيرمشخصكنيدبراي DFSچندپيمايش
A B E D F C
A B D F E C
A D E F B C
40
فرادرس
FaraDars.org
![Page 41: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/41.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
.آوريدزيررابهدستگرافDFSيكيازپيمايشهاي
A B F I H G C D E
41
فرادرس
FaraDars.org
![Page 42: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/42.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
مثال•
42
فرادرس
FaraDars.org
![Page 43: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/43.jpg)
ساختمان داده ها
faradars.org/fvds9402
عمقیتابع پیمایش
dfs (v)
{
visited[v] = TRUE;
cout << v;
for ( w = graph[v] ; w ; w = w->link )
if ( ! Visited [w -> vertex] )
dfs ( w -> vertex );
}
43
فرادرس
FaraDars.org
![Page 44: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/44.jpg)
ساختمان داده ها
faradars.org/fvds9402
طبقهبندييالها
.كردبنديطبقهرده،4به(DFS)عمقاولجستجويوسيلهبهتوانميراهايالtree)درختی-1 edge):كهياليDFSكندميمالقاتراآن.
forward)جلورو-2 edge):يال(a,b)كهDFSحاصل،جنگلدروكندنميمالقاتراآنbنوادهaاست.
back)برگشتی-3 edge):يال(a,b)كهDFSحاصل،جنگلدروكندنميمالقاتراآنaنوادهbاست.
cross)تقاطعی-4 edge):نباشندباالبنديدسته3دركههايييال.
.گويندمينيزطرفهدويالتقاطعي،يالبهوروپسيالبرگشتي،يالبه:تذكر
44
فرادرس
FaraDars.org
![Page 45: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/45.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
مثال
45
فرادرس
FaraDars.org
![Page 46: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/46.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
مشخصكردننوعيالهابراساسپيمايشعمقي
46
فرادرس
FaraDars.org
![Page 47: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/47.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
tree edge : (s,z) , (z,y) , (y,x) , (z,w) , (t,v) , (t,u)
forward edge : (s,w)
back edge : (x,z) , (u,t)cross edge : (w,x) , (v,w) , (v,s) , (u,v)
47
فرادرس
FaraDars.org
![Page 48: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/48.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
48
فرادرس
FaraDars.org
![Page 49: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/49.jpg)
ساختمان داده ها
faradars.org/fvds9402
زمان کشف و زمان خاتمه
d[u] : when u is discoveredf[u] : when searching adj of u is finished
u
v w
فرادرس
FaraDars.org
![Page 50: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/50.jpg)
ساختمان داده ها
faradars.org/fvds9402
d[u] = 1 u
v w
فرادرس
FaraDars.org
![Page 51: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/51.jpg)
ساختمان داده ها
faradars.org/fvds9402
d[u] = 1 u
v w
d[v] = 2
فرادرس
FaraDars.org
![Page 52: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/52.jpg)
ساختمان داده ها
faradars.org/fvds9402
d[u] = 1
d[v] = 2
f[v] = 3
u
v w
فرادرس
FaraDars.org
![Page 53: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/53.jpg)
ساختمان داده ها
faradars.org/fvds9402
d[u] = 1
d[v] = 2
f[v] = 3
u
v w
d[w] = 4
فرادرس
FaraDars.org
![Page 54: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/54.jpg)
ساختمان داده ها
faradars.org/fvds9402
d[u] = 1
d[v] = 2
f[v] = 3d[w] = 4
f[v] = 5
u
v w
فرادرس
FaraDars.org
![Page 55: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/55.jpg)
ساختمان داده ها
faradars.org/fvds9402
d[u] = 1
f[u] = 6
d[v] = 2
f[v] = 3d[w] = 4
f[w] = 5
u
v w
فرادرس
FaraDars.org
![Page 56: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/56.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
1/u x
v y
zw
فرادرس
FaraDars.org
![Page 57: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/57.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/u x
2/v y
zw
فرادرس
FaraDars.org
![Page 58: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/58.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/u x
2/v 3/ y
zw
فرادرس
FaraDars.org
![Page 59: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/59.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/u 4/ x
2/v 3/ y
zw
فرادرس
FaraDars.org
![Page 60: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/60.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/u 4/5 x
2/v 3/ y
zw
فرادرس
FaraDars.org
![Page 61: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/61.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/u 4/5 x
2/v 3/6 y
zw
فرادرس
FaraDars.org
![Page 62: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/62.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/u 4/5 x
2/7v 3/6 y
zw
فرادرس
FaraDars.org
![Page 63: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/63.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/8u 4/5 x
2/7v 3/6 y
zw
فرادرس
FaraDars.org
![Page 64: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/64.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/8u 4/5 x
2/7v 3/6 y
z9/w
فرادرس
FaraDars.org
![Page 65: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/65.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/8u 4/5 x
2/7v 3/6 y
10/ z9/w
فرادرس
FaraDars.org
![Page 66: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/66.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/8u 4/5 x
2/7v 3/6 y
10/11 z9/w
فرادرس
FaraDars.org
![Page 67: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/67.jpg)
ساختمان داده ها
faradars.org/fvds9402
1/8u 4/5 x
2/7v 3/6 y
10/11 z9/12w
فرادرس
FaraDars.org
![Page 68: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/68.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
68
فرادرس
FaraDars.org
![Page 69: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/69.jpg)
ساختمان داده ها
faradars.org/fvds9402
نکات
:دار گراف جهت یک در جستجوی اول عمق
:استاگروفقطاگر Forwardيا Treeنوع از(u,v)يال-1
:استاگروفقطاگر Backازنوع(u,v)يال-2
:استاگروفقطاگرCrossازنوع(u,v)يال-3
69
uvvu ffdd
vuuv ffdd
uuvv fdfd
فرادرس
FaraDars.org
![Page 70: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/70.jpg)
ساختمان داده ها
faradars.org/fvds9402
(topological sort)مرتب سازی توپولوژیکی
(Directed Acyclic Graph):قابلاجرااستDAGسازيتوپولوژيفقطبررويمرتب
70
فرادرس
FaraDars.org
![Page 71: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/71.jpg)
ساختمان داده ها
faradars.org/fvds9402
مثال
:توپولوژيكيترتيبچند
0 1 3 2 4 5
0 1 3 2 5 4
0 1 2 3 4 5
71
فرادرس
FaraDars.org
![Page 72: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/72.jpg)
ساختمان داده ها
faradars.org/fvds9402مثال
:توپولوژيكيترتيبچند
72
فرادرس
FaraDars.org
![Page 73: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/73.jpg)
ساختمان داده ها
faradars.org/fvds9402
(بر اساس زمان خاتمه)توپولوژیکیمرتب سازی
.ميكنيممالقاتخاتمههارابهترتيبنزوليزمانگره
t u v s z w y x
73
فرادرس
FaraDars.org
![Page 74: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/74.jpg)
ساختمان داده ها
faradars.org/fvds9402
الگوریتم مرتب سازی توپولوژیکی
Topological-Sort(G)
1 call DFS(G) to compute finishing times f[v] for each vertex v
2 as each vertex is finished, insert it onto the front of a linked list
3 return the linked list of vertices
74
فرادرس
FaraDars.org
![Page 75: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/75.jpg)
ساختمان داده ها
faradars.org/fvds9402
کمینهپوشای درخت
:گرافيکبراي(فراگير)پوشادرخت.دباشنداشتهچرخهيعنيباشددرختيکوبودهگرافدرموجودرئوسهمهحاويكهاستمتصلگرافزيريک
(MST)كمينهوزنباپوشادرخت:كمينهپوشايدرخت
MSTتعيينهايالگوريتم
كروسكال-1
پريم-2
75
فرادرس
FaraDars.org
![Page 76: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/76.jpg)
ساختمان داده ها
faradars.org/fvds9402
(کروسکال)مثال
مثال•
76
5
1
A
H
B
F
E
D
C
G3
2
4
6
34
3
4
8
4
3
فرادرس10
FaraDars.org
![Page 77: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/77.jpg)
امرتب کردن صعودی یال ه
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 78: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/78.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 79: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/79.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 80: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/80.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 81: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/81.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 82: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/82.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 83: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/83.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 84: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/84.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 85: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/85.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 86: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/86.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 87: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/87.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 88: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/88.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G3
2
4
6
34
3
48
4
3
10edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
فرادرس
FaraDars.org
![Page 89: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/89.jpg)
edge dv
(D,E) 1
(D,G) 2
(E,G) 3
(C,D) 3
(G,H) 3
(C,F) 3
(B,C) 4
5
1
A
HB
F
E
D
C
G2
3
3
3
edge dv
(B,E) 4
(B,F) 4
(B,H) 4
(A,H) 5
(D,F) 6
(A,B) 8
(A,F) 10
Total Cost = 21
4
}not
considered
فرادرس
FaraDars.org
![Page 90: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/90.jpg)
(پریم)مثال
A F
B C
D
E
2
7
45
8 6 4
5
3
8 فرادرس
FaraDars.org
![Page 91: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/91.jpg)
A F
B C
D
E
2
7
45
8 6 4
5
3
8 فرادرس
FaraDars.org
![Page 92: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/92.jpg)
A F
B C
D
E
2
7
45
8 6 4
5
3
8 فرادرس
FaraDars.org
![Page 93: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/93.jpg)
A F
B C
D
E
2
7
45
8 6 4
5
3
8 فرادرس
FaraDars.org
![Page 94: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/94.jpg)
A F
B C
D
E
2
7
45
8 6 4
5
3
فرادرس8
FaraDars.org
![Page 95: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/95.jpg)
Total weight of tree: 18
A F
B C
D
E
2
7
45
8 6 4
5
3
فرادرس8
FaraDars.org
![Page 96: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/96.jpg)
ساختمان داده ها
faradars.org/fvds9402
(cبه زبان )پیاده سازی گراف با لیست همجواری
int main ( ){
int v = 5;
struct Graph* g ;
g= createGraph(v);
addEdge (g , 0 , 1);
addEdge (g , 0 , 4);
addEdge (g , 1 , 2);
addEdge (g , 1 , 3);
addEdge (g , 1 , 4);
addEdge (g , 2 , 3);
addEdge (g , 3 , 4);
printGraph(g);
}
96
فرادرس
FaraDars.org
![Page 97: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/97.jpg)
ساختمان داده ها
faradars.org/fvds9402
تعریف استراکچرها
struct Node {
int data;struct Node* next;
};
struct AdjList {
struct Node *head;};
struct Graph{int v;
struct AdjList* array;};
97
فرادرس
FaraDars.org
![Page 98: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/98.jpg)
98
struct Node* newNode(int a){
struct Node* n;n = malloc(sizeof(struct Node));
n->data = a;n->next = NULL;return n;
}
فرادرس
FaraDars.org
![Page 99: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/99.jpg)
99
Struct Graph* createGraph(int V){
struct Graph* g ;g= malloc(sizeof(struct Graph));g->v = v;g->array = malloc(v * sizeof(struct AdjList));int i;for (i = 0 ; i < v ; ++i)
g->array[i].head = NULL;return g;
}
فرادرس
FaraDars.org
![Page 100: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/100.jpg)
100
void addEdge(struct Graph* g, int s, int d){
// Add an edge from source to dest.
struct Node* n = newNode(d);n->next = g->array[s].head;g->array[s].head = n;
// Since graph is undirected, add an edge from dest to source also
n = newNode(s);n->next = g->array[d].head;g->array[d].head = n;
}
فرادرس
FaraDars.org
![Page 101: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/101.jpg)
101
void printGraph ( struct Graph* g ){
int i; struct Node* p ;for (i = 0 ; i < g->v ; ++i){
p= g->array[i].head;printf("vertex %d : ", i);while (p){
printf("-> %d", p-> data);p = p->next;
}printf("\n");
}}
فرادرس
FaraDars.org
![Page 102: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/102.jpg)
ساختمان داده ها
faradars.org/fvds9402كاربردهايپيمايشDFSFollowing are the problems that use DFS as a bulding block.
1) Topological Sorting
2) Detecting cycle in a graph
A graph has cycle if and only if we see a back edge during DFS.
3) For an unweighted graph, DFS traversal of the graph produces the minimum spanning
tree and all pair shortest path tree.
4) Finding Strongly Connected Components of a graph
102
فرادرس
FaraDars.org
![Page 103: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/103.jpg)
ساختمان داده ها
faradars.org/fvds9402كاربردهايگراف5) Path Finding
We can specialize the DFS algorithm to find a path between two given vertices u and z.i) Call DFS(G, u) with u as the start vertex.ii) Use a stack S to keep track of the path between the start vertex and the current vertex.iii) As soon as destination vertex z is encountered, return the path as the contents of the stack
6) Solving puzzles with only one solution, such as mazes.
7) To test if a graph is bipartite
We can augment either BFS or DFS when we first discover a new vertex, color itopposited its parents, and for each other edge, check it doesn’t link two vertices of the
same color. The first vertex in any connected component can be red or black!
103
فرادرس
FaraDars.org
![Page 104: آموزش ساختمان داده ها - بخش هفتم](https://reader037.vdocuments.net/reader037/viewer/2022102707/55d2aa94bb61ebe13a8b45e4/html5/thumbnails/104.jpg)
ساختمان داده ها
faradars.org/fvds9402
104
این اسالید ها بر مبنای نکات مطرح شده در فرادرس« مجموعه فرادرس های ساختمان داده ها»
.تهیه شده است
.نماییدلینک زیر مراجعه برای کسب اطالعات بیشتر در مورد این آموزش به
faradars.org/fvds9402
فرادرس
FaraDars.org