slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ساختمان داده گراف PowerPoint Presentation
Download Presentation
ساختمان داده گراف

Loading in 2 Seconds...

play fullscreen
1 / 35

ساختمان داده گراف - PowerPoint PPT Presentation


  • 197 Views
  • Uploaded on

ساختمان داده گراف. حسین دهقان دانشکده فنی و مهندسی جم. درخت AVL. انگیزه. درخت دودويي جستجو ( BST ) در حالتي كه كامل باشد ساختار مناسبي براي عمليات ديكشنري است ( O( lgn ) ) در بدترين حالت، درخت دودويي جستجو به يك ليست پيوندي تبديل مي شود ( O(n) )

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ساختمان داده گراف' - piera


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

ساختمان دادهگراف

حسین دهقان

دانشکده فنی و مهندسی جم

slide2

درخت AVL

حسین دهقان

دانشکده فنی و مهندسی جم

slide3
انگیزه
  • درخت دودويي جستجو (BST) در حالتي كه كامل باشد ساختار مناسبي براي عمليات ديكشنري است (O(lgn))
  • در بدترين حالت، درخت دودويي جستجو به يك ليست پيوندي تبديل مي شود (O(n))
  • روشهايي وجود دارد كه درخت دودويي جستجو (نزديك به) دودويي كامل نگهداري شود
    • AVL (Adelson, Velskii, Landis)
    • درخت 3-2 (2-3- Tree)
    • درخت 4-3-2 (2-3-4- Tree)
    • درخت قرمز سياه (Red Black Tree)

حسین دهقان

دانشکده فنی و مهندسی جم

slide4
درخت AVL
  • ضريب تعادل (BF: Balance Factor) براي هر گره T در درخت دودويي برابر است با BF=hL-hR كه در آن hLو hRبه ترتيب ارتفاع زيردرختان چپ و راست Tاست.
  • در AVLtree ، BF براي هر گره درخت يكي از مقادير 1،0، يا -1 است.

حسین دهقان

دانشکده فنی و مهندسی جم

slide5
مثال

H=0

BF=0

H=1

BF=1

H=1

BF=-1

H=1

BF=0

32

15

17

48

H=0

BF=0

H=0

BF=0

H=0

BF=0

H=0

BF=0

37

12

43

49

H=2

BF=1

حسین دهقان

دانشکده فنی و مهندسی جم

62

H=2

BF=-1

62

H=1

BF=1

55

H=0

BF=0

H=0

BF=0

67

55

H=1

BF=-1

67

H=0

BF=0

50

H=0

BF=0

50

slide6
مثال

H=4

BF=-1

44

H=3

BF=1

H=2

BF=-1

17

78

H=1

BF=0

H=2

BF=0

H=1

BF=0

12

32

50

88

حسین دهقان

دانشکده فنی و مهندسی جم

H=1

BF=0

H=1

BF=0

28

37

62

80

90

48

43

49

55

67

slide7
اضافه کردن یک گره
  • با اضافه شدن گره اي به درخت AVLممكن است تعادل درخت از بين برود (گره اي با BF= 2به وجود آيد)
  • براي متعادل ساختن درخت پس از اضافه شدن گره اي چرخش (rotation) انجام مي شود.
  • انواع چرخش (rotation) در درخت AVL بر اساس محل اضافه شده گره Y نسبت به گره Aاست.
  • گره A نزديكترين جد به گره اضافه شده Y است كه پس از اضافه شدن Y، BF براي آن گره 2 مي شود.

حسین دهقان

دانشکده فنی و مهندسی جم

slide8

1

A

چرخش

0

B

h

h+2

AR

BL

BR

درخت متعادل

2

0

A

B

0

1

A

B

حسین دهقان

دانشکده فنی و مهندسی جم

AR

BL

BL

BR

BR

AR

درخت نامتعادل

بعد از insert

درخت متعادل

بعد از چرخشLL (LL rotation)

slide9

-1

چرخش

A

0

B

h

h+2

AL

BL

BR

درخت متعادل

-2

0

A

B

0

-1

A

حسین دهقان

دانشکده فنی و مهندسی جم

B

BR

AL

BR

BL

AL

BL

BL

درخت متعادل

بعد از چرخشRR (RR rotation)

درخت نامتعادل

بعد از insert

slide10
چرخش

LR rotation

0

1

2

C

A

A

1

0

0

0

A

B

B

B

0

C

حسین دهقان

دانشکده فنی و مهندسی جم

slide11

0

1

2

A

A

C

0

-1

0

-1

B

B

B

A

h+2

0

1

C

C

h

AL

AL

h

AL

CL

CR

BL

BL

BL

CL

CL

CR

CR

0

1

2

A

A

C

0

-1

1

0

B

B

B

A

h+2

0

-1

C

C

h

AL

AL

h

AL

CL

CR

BL

BL

BL

CL

CL

CR

CR

چرخش

حسین دهقان

دانشکده فنی و مهندسی جم

slide12

-1

مثال

1

-1

0

0

0

0

0

-1

0

2

-1

-1

حسین دهقان

دانشکده فنی و مهندسی جم

0

1

0

0

0

1

0

0

1

0

-1

-1

گره اضافه شده

slide13
مثال
  • اضافه كردن ماههاي ميلادي در درخت دودويي جستجو (non AVL)
  • Jan, Feb, Mar, Apr, May, June, July, Aug, Sept, Oct, Nov, Dec

Jan

Feb

Mar

حسین دهقان

دانشکده فنی و مهندسی جم

Apr

June

May

Aug

Sept

July

Dec

Oct

Nov

slide14

Jan

Aug

Feb

Mar

Mar

Feb

Apr

June

May

Apr

June

May

Sept

July

Aug

July

Oct

Mar

Jan

Oct

Aug

Jan

Mar

Sept

May

Aug

June

Oct

Feb

Apr

June

Feb

Nov

Apr

July

July

Sept

May

Dec

Nov

Jan

مثال (AVL)
slide15

گراف

حسین دهقان

دانشکده فنی و مهندسی جم

slide16
گراف

حسین دهقان

دانشکده فنی و مهندسی جم

slide17

انتها

ابتدا

تعریف
  • يک گراف از دو مجموعه تشکيل مي شود:
    • يک مجموعه محدود غير تهي از رئوس V(G)
    • يک مجموعه (احيانا تهي) از يالها E(G)
  • G(V,E)يک گراف را نشان مي دهد
  • يک گراف بدون جهت گرافي است که در آن ترتيب رئوس در يک يال اهميت ندارد.(v0, v1) = (v1,v0)
  • يک گرافجهتدارگرافي است که در آن يک يال متناظر با يک زوج مرتب از رئوس است <v0, v1> != <v1, v0>

حسین دهقان

دانشکده فنی و مهندسی جم

slide18

0

0

0

0

1

2

1

2

1

2

1

3

3

G1

3

6

5

4

G2

2

G3

گراف کامل
  • گراف کامل : گرافي است که داراي حداکثر تعداد لبه باشد.
      • گراف بدون جهت کامل: n(n-1)/2يال
      • گراف جهت دار کامل: n(n-1) يال

حسین دهقان

دانشکده فنی و مهندسی جم

گرافکامل

گرافغيرکامل

V(G1)={0,1,2,3} E(G1)={(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)}

V(G2)={0,1,2,3,4,5,6} E(G2)={(0,1),(0,2),(1,3),(1,4),(2,5),(2,6)}

V(G3)={0,1,2} E(G3)={<0,1>,<1,0>,<1,2>}

slide19
گراف
  • در يک گراف نمي توان يالي از یک راس به خودش داشت.
  • در يک گراف يک يال نمي تواند چند بار ظاهر شود.

حسین دهقان

دانشکده فنی و مهندسی جم

slide20

0

0

1

2

1

3

G1

2

G3

زير گراف
  • V(G’`)  V(G) and E(G’`)  E(G).

حسین دهقان

دانشکده فنی و مهندسی جم

slide21

0

0

0

1

2

1

2

1

2

3

3

3

مسیر
  • يک مسير از راس vp به راس vq در گراف Gدنباله اي از رئوس به صورت vp, vi1, vi2, ..., vin, vq است به نحوي که

(vp, vi1), (vi1, vi2), ..., (vin, vq) يالهاي گراف Gباشند.

  • طوليکمسير به صورت تعداد لبه هاي درون آن تعريف مي شود.

حسین دهقان

دانشکده فنی و مهندسی جم

slide22

0

1

2

3

مسیر
  • مسير ساده (جهت دار)
    • مسيري است که در آن تمام راس ها احتمالا به جز راس اول و آخر متمايز باشند.
  • دور يا حلقه
    • مسير ساده اي است که راس اول و آخر آن يکي است.

حسین دهقان

دانشکده فنی و مهندسی جم

slide23

0

1

2

درجه گراف
  • درجه
    • تعداد يالهايي است که با آن تلاقي دارند
  • براي گراف جهت دار
    • درجهوروديراس: تعداد يالهايي است که سر آنها به راس مذکور متصل باشد.
    • درجهخروجيراس: تعداد يالهايي است که ته آنها به راس مذکور متصل باشد.
  • اگر diدرجه راس iدر گراف Gبا nراس و eيال باشد، تعداد يالها برابر است با

حسین دهقان

دانشکده فنی و مهندسی جم

slide24
ذخیره گراف
  • ماتريس همسايگي
  • ليست همسايگي

حسین دهقان

دانشکده فنی و مهندسی جم

slide25

0

1

2

3

ذخیره گراف
  • ماتريس همسايگي
  • پيچيدگي زماني تشخيص تعداد يال گراف و يا تشخيص همبند بودن گراف
    • گراف بدون جهت O(n2/2)
    • گراف جهت دار O(n2)

حسین دهقان

دانشکده فنی و مهندسی جم

slide26

1

4

0

5

2

7

0

3

6

0

1

1

2

2

3

ذخیره گراف (ليستهمسايگي)

حسین دهقان

دانشکده فنی و مهندسی جم

slide27
عمليات روي گراف ها
  • پيمايش (جستجو)
    • جستجوي عمقي
    • Depth First Search (DFS)
    • جستجوي عرضي
    • BreadthFirstSearch(BFS)
  • درخت پوشا

حسین دهقان

دانشکده فنی و مهندسی جم

slide28
پيمايش گراف

depth first search (DFS):v0, v1, v3, v7, v4, v5, v2, v6

حسین دهقان

دانشکده فنی و مهندسی جم

breadth first search (BFS):v0, v1, v2, v3, v4, v5, v6, v7

slide29

w

جستجوي عمقي

Data structure

adjacency list: O(e)

adjacency matrix: O(n2)

#define FALSE 0

#define TRUE 1

short int visited[MAX_VERTICES];

[0]

[1]

[2]

[3]

[4]

[5]

[6]

[7]

visited:

output:

0

1

3

7

4

5

2

6

slide30
جستجوي عرضي
  • براي پياده سازي نياز به
    • يک صف
    • يک آرايه سراسري visited :که در ابتدا به صفر مقدار دهي اوليه مي شود.

حسین دهقان

دانشکده فنی و مهندسی جم

slide31
جستجوي عرضي

[0]

[1]

[2]

[3]

[4]

[5]

[6]

[7]

visited:

out

0

1

2

3

4

5

6

7

in

0

1

2

3

4

5

6

7

output:

adjacency list: O(e)

adjacency matrix: O(n2)

w

slide32
عمليات روي گراف ها
  • مولفه هاي همبند
    • اگر Gيک گراف بدون جهت باشد مي توان تعيين کرد که آيا گراف همبند است يا نه.
      • يکي از دو تابع dfsيا bfsرا احضار کنيم و سپس تعيين کنيم آيا راس ملاقات نشده اي وجود دارد يا نه.
    • مولفه هاي همبند يک گراف را مي توان با احضارهاي مکرر يکي از دو تابع bfs(v) يا dfs(v)تعيين کرد که در آن v راسي است که هنوز ملاقات نشده است.

adjacency list: O(n+e)

adjacency matrix: O(n2)

slide33
درخت پوشا
  • چنانچه Gيک گراف همبند باشد
  • پيمايش آن به صورت جستجوي عمقي يا عرضي، با شروع از هر راس دلخواه تمام رئوس گراف G را ملاقات مي کنند.
  • درختي که تعدادي از لبه ها و تمام رئوس G را در بر دارد، درختپوشاناميده مي شود.

حسین دهقان

دانشکده فنی و مهندسی جم

slide34
درخت پوشا
  • با استفاده از جستجوي عمقي يا جستجوي عرضي مي توان درخت پوشا را ايجاد کرد
    • درخت حاصل از جستجوي عمقي ← درخت پوشاي عمقي
    • درخت حاصل از جستجوي عرضي ← درخت پوشاي عرضي

حسین دهقان

دانشکده فنی و مهندسی جم

slide35
عمليات روي گراف ها
  • درخت پوشا
  • با استفاده از جستجوي عمقي يا جستجوي عرضي مي توان درخت پوشا را ايجاد کرد

درخت حاصل از جستجوي عمقي درخت پوشاي عمقي نام دارد

درخت حاصل از جستجوي عرضي درخت پوشاي عرضي نام دارد