def main(): start = input("Ange startordet: ") s**t = input("Ange slutordet: ") first_parent = ParentNode(start) queue = LinkedQ() queue.enqueue(first_parent) while not queue.isEmpty(): nod = queue.dequeue() if makechildren(nod, s**t, queue) is True: print("Det finns en väg till", s**t) break elif queue.isEmpty() is True: print("Det finns ingen väg till", s**t)
def main(): # Skapar binärträd av ordlistan (svenska) och dumbarnen (gamla) # Frågar efter start- och slutord svenska = Bintree() # ordlistan gamla = Bintree() # dumbarnen with open('word3.txt', 'r', encoding = 'utf-8') as svenskfil: for rad in svenskfil: ordet = rad.strip() # ett trebokstavsord per rad if ordet in svenska: pass else: svenska.put(ordet) startord = input('Vad är startordet?\n') slutord = input('Vad är slutordet?\n') q = LinkedQ() q.enqueue(startord) gamla.put(startord) foundPath = None while not q.isEmpty(): # Gå igenom alla barn, barnbarn, ... ord = q.dequeue() if ord == slutord: foundPath = True break makechildren(ord, q, svenska, gamla) if foundPath: print('Det finns en väg från', startord, 'till', slutord) else: print('Det finns ingen väg från', startord, 'till', slutord)
def interface(): try: startord = input("Ange startord: ") slutord = input("Ange slutord: ") q = LinkedQ() q.enqueue(startord) while not q.isEmpty(): nod = q.dequeue() makechildren(nod, slutord, q) except SolutionFound: print("Det finns en väg till", slutord) else: print("Det finns ingen väg")
def main(): choice_num = str(input("Vilken ordning ligger korten i?")) str_list = choice_num.split() num_list = [int(x) for x in str_list] # Gör om alla element till integers q = LinkedQ() #Skapar en tom kö for num in num_list: #Sätter in alla värden i kön q.enqueue(num) result = [] while not q.isEmpty( ): # Här tar vi bort en och lägger den längst bak i kön, tar nästa i kön och sätter den i result listan, fortsätter tills listan är tom top_card = q.dequeue() q.enqueue(top_card) next_card = q.dequeue() result.append(next_card) print(str(result).strip('[]'))
def main(): svenska = Bintree() gamla = Bintree() with open("word3.txt", "r", encoding="utf-8") as svenskfil: for rad in svenskfil: ordet = rad.strip() if ordet not in svenska: svenska.put(ordet) startord = input('Ange ett startord: ') parent = ParentNode(startord) slutord = input('Ange ett slutord: ') q = LinkedQ() q.enqueue(parent) try: while not q.isEmpty(): parent = q.dequeue() makechildren(parent, startord, slutord, svenska, q, gamla) print('Det finns ingen väg.') except SolutionFound: pass
def main(): a = input('Vilken ordning ligger korten i?') b = a.split() for i in b: if int(i)>13: return print('Värdet på kortet kan ej överstiga 13.') #q = ArrayQ() q = LinkedQ() for i in b[1::2]: q.enqueue(int(i)) for i in b[0::2]: q.enqueue(int(i)) if q.isEmpty() is True: print('Du måste mata i några kort för att beskåda magin.') else: right_order = [] for i in range(len(b)): right_order.append(q.dequeue()) print('Korten kommer ut i denna ordning:') for i in right_order: print(i, end=' ')
def main(): # Skapar binärträd av ordlistan (svenska) och dumbarnen (gamla) # Frågar efter start- och slutord svenska = Bintree() # ordlistan gamla = Bintree() # dumbarnen with open('word3.txt', 'r', encoding='utf-8') as svenskfil: for rad in svenskfil: ordet = rad.strip() # ett trebokstavsord per rad if ordet in svenska: pass else: svenska.put(ordet) startord = input('Vad är startordet?\n') slutord = input('Vad är slutordet?\n') q = LinkedQ() # skapar en kö node = ParentNode(startord) # skapa en ParentNode av startord q.enqueue(node) # lägger in startordet i kön gamla.put(startord) # lägger in startordet i gamlabarn-trädet foundPath = None while not q.isEmpty(): # Gå igenom alla barn, barnbarn, ... parent = q.dequeue() if parent.word == slutord: foundPath = True break makechildren(parent, q, svenska, gamla) if foundPath: print('Det finns en väg från', startord, 'till', slutord, '\nVägen är:') parent.writechain() # parent är slutordets ParentNode else: print('Det finns ingen väg från', startord, 'till', slutord)
def main(): svenska = Bintree() gamla = Bintree() with open("word3.txt", "r", encoding="utf-8") as svenskfil: for rad in svenskfil: ordet = rad.strip() if ordet not in svenska: svenska.put(ordet) startord = input('Ange ett startord: ') slutord = input('Ange ett slutord: ') q = LinkedQ() q.enqueue(startord) kedja = None while not q.isEmpty(): nod = q.dequeue() kedja = makechildren(nod, slutord, svenska, q, gamla) if kedja is not None: break if kedja is None: print('Det finns ingen väg') else: print('Det finns en väg från', startord, 'till', slutord)
def main(): string = input("skriv: ") stringList = string.split() # lägger stringnummer i en lista intList = [] try: for i in stringList: # gör om till intar och lägger i lista i = int(i) intList.append(i) except: for i in stringList: # gör om till intar och lägger i lista intList.append(i) q = LinkedQ() # skapar ett objekt for x in intList: #appendar talen till objektets array q.enqueue(x) while q.isEmpty() == False: firstToLast = q.dequeue() # poppar första talet q.enqueue(firstToLast) # lägger första talet sist i arrayn deal = q.dequeue() # printar första talet i arrayn print(deal, end=" ")
from linkedQFile import LinkedQ li = [7, 1, 12, 2, 8, 3, 11, 4, 9, 5, 13, 6, 10] q = LinkedQ() for number in li: q.enqueue(number) D1list = [] while q.isEmpty() == False: x = q.dequeue() q.enqueue(x) y = q.dequeue() D1list.append(y) print("I rätt ordning: ", D1list)
class ParentNode: def __init__(self, word, parent=None): self.word = word self.parent = parent startNode = ParentNode(str(sys.argv[1])) slutNode = ParentNode(str(sys.argv[2])) visited = DictHash() visited.store(startNode, startNode) queueOfNodes = LinkedQ() q = LinkedQ() queueOfNodes.enqueue(startNode) #lägger startnoden i kön while not queueOfNodes.isEmpty(): nextNode = queueOfNodes.dequeue() #plockar ut första noden ur kön if nextNode.word == slutNode.word: #om elementet är slutordet break else: makechildren(nextNode, visited, queueOfNodes) #skapa alla barn def writechain(parentNode): if parentNode == None: return writechain(parentNode.parent) print(parentNode.word) writechain(nextNode)
new_word = "".join(start_word) if new_word in svenska: if new_word not in gamla: gamla.put(new_word) q.enqueue(new_word) # If it so happens that we find the word that is looked for, return True. if new_word == end: return True # When the whole alfabet has been checked through, add +1 to i and re-loop. if letter == 'ö': i += 1 break start_word = list(word) start = input("Start") end = input("End") q = LinkedQ() q.enqueue(start) while not q.isEmpty(): # Takes the first element in the queue and removes it. This will then be checked. nod = q.dequeue() connection = makechildren(nod, end, q) if connection: print("There was a way!") break if not connection: print("There was no way!")
from makechildren import makechildren from hashtest import DictHash from linkedQFile import LinkedQ startord = 'fan' slutord = 'gud' visited = DictHash() visited.store(startord, startord) queueOfWords = LinkedQ() q = LinkedQ() queueOfWords.enqueue(startord) #lägger startordet i kön while not queueOfWords.isEmpty(): nextWord = queueOfWords.dequeue() #plockar ut första elementet ur kön if nextWord == slutord: #om elementet är slutordet break else: makechildren(nextWord, visited, queueOfWords) #skapa alla barn print("slutord = ", slutord)
for i in range(5): arrayQ.enqueue(int(input("Ange vilket kort som väljs härnsäst: ")) ) #Kortet stoppas längst bak i listan def test(): #Testfunktion för att kontrollera enqueue och dequeue q = LinkedQ() q.enqueue(1) q.enqueue(2) x = q.dequeue() y = q.dequeue() if (x == 1 and y == 2): print("Fungerar") else: print("Något är fel. 1 och 2 förväntades men vi fick", x, y) if __name__ == '__main__': test() arrayQ = LinkedQ() #en array skapas start_kort(arrayQ) #anrpoar funktionen start_kort i = 0 while not arrayQ.isEmpty(): i += 1 kortet = arrayQ.dequeue() #raden anropar kortet längst bak i listan if i % 2 != 0: #När i är delbart med 2 (varranan gång) körs följande #print("nu placeras ett kort längst bak") arrayQ.enqueue(kortet) #Enqueue körs else: print("kort", kortet, "placeras på bordet")