All pastes #22344 Raw Edit

AlgDat

public python v1 · immutable
#22344 ·published 2005-09-07 22:40 UTC
rendered paste body
from sys import stdinclass Node:    def __init__(self):        self.barn = []        self.ratatosk = False        self.dybde = 0def dfs(rot):    stack = [rot]    while stack:        node = stack.pop()        dybde = node.dybde        if node.ratatosk is True:            return dybde                dybde += 1        def sett_dybde(node):            node.dybde = dybde        map(sett_dybde, node.barn)        stack.extend(node.barn)def bfs(rot):    queue = [rot]    while queue:        node = queue.pop(0)        dybde = node.dybde                if node.ratatosk is True:            return dybde                dybde += 1        def sett_dybde(node):            node.dybde = dybde        map(sett_dybde, node.barn)        queue.extend(node.barn)funksjon = stdin.readline().strip()antall_noder = int(stdin.readline())noder = [Node() for i in range(antall_noder)]start_node = noder[int(stdin.readline())]ratatosk_node = noder[int(stdin.readline())]ratatosk_node.ratatosk = Truefor linje in stdin:    tall = linje.split()    temp_node = noder[int(tall.pop(0))]    temp_node.barn = [noder[int(i)] for i in tall]if funksjon == 'dfs':    print dfs(start_node)elif funksjon == 'bfs':    print bfs(start_node)elif funksjon == 'velg':    print bfs(start_node)