Deykstra algoritmining tadbiqi
Grafning og’irligini saqlash uchun kvadrat matritsadan foydalaniladi. Satrlar va ustunlar sarlavhalarida grafning uchlari joylashadi. Graf yoylarining og’irligi jadvalning ichki yacheykalariga joylashtiriladi. Graf petlyaga ega emas, shu sababdan ham matritsaning asosiy diagonalida nol qiymatlar joylashgan.
from collections import deque
def search(start_node, target='elon musk'):
search_queue = deque()
search_queue += graph[start_node]
searched = set()
while search_queue:
person = search_queue.popleft()
if person not in searched:
if person == target:
print(f'{target}ni topdik!')
# print(searched)
return True
else:
search_queue += graph[person]
searched.add(person)
return False
if __name__ == '__main__':
graph = {'siz': ['ali', 'vali', 'tohir'],
'ali': ['aziza', 'olim'],
'vali': ['botir', 'ziyoda'],
'tohir': ['elon musk', 'mohir'],
'olim': [],
'aziza': [],
'botir': [],
'ziyoda': ['aziza'],
'elon musk': [],
'mohir': []
}
print(search('siz'))
print(search('ali','vali'))
NATIJA:
Xulosa:
Men bu vazifani bajarish jarayonida c++ va python dasturlash tillaridagi Graphlardan olgan bilim ko’nikmalarimni oshirib oldim.
Har doim masalalarda massiv va ro’yxat metodlaridan foydalnish dastur codini qisqartirish va natijani mukammalroq chiqishiga yordam beradi.
Do'stlaringiz bilan baham: |