Претрага у ширину

Претрага у ширину подразумева да се поља обилазе у растућем редоследу растојања од почетног поља (под растојањем подразумевамо број корака од почетног до тог поља). Обично се примењује када се у задатку тражи да се одреди најкраћи пут тј. најмањи број корака до поља које задовољава неки услов, при чему се подразумева да су сва суседна поља подједнако удаљена (када су растојања између суседних чворова различита, није могуће користити претрагу у ширину, већ је потребно користити напредније графовске алгоритме, попут, Дајкстриног алгоритма).

У имплементацији претраге у ширину користи се ред. Прикажимо алгоритам у псеудокоду.

obidji(pocetno_polje): stavi pocetno_polje u red obelezi pocetno_polje dok red nije prazan: skini polje sa pocetka reda za neobelezene susede tog polja: stavi suseda na stek obelezi suseda

Приметимо да се нерекурзивна имплементација претраге у дубину и у ширину разликује само по томе да ли се користи стек или ред.