예제 #1
0
def storeSentence(atom_name):
    q = LinkedQ()

    for char in atom_name:
        q.enqueue(char)

    return q
예제 #2
0
def createQueue(molekyl):
    """tar in en molekyl som en sträng och läger varje karaktär i en kö
    som retuneras"""
    queue = LinkedQ()
    for char in molekyl:
        queue.enqueue(char)
    return queue
예제 #3
0
def storeFormula(formel):
    q = LinkedQ()
    formel = list(formel)
    for tecken in formel:
        q.enqueue(tecken)

    return q
예제 #4
0
파일: bfs.py 프로젝트: saraves/Tilda
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)
예제 #5
0
def storeSentance(molekyler):
    '''
    Lagrar alla molekyler i en kö
    '''
    q = LinkedQ()
    for character in molekyler:
        q.enqueue(character)
    return q
예제 #6
0
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)
예제 #7
0
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")
예제 #8
0
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)
예제 #9
0
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('[]'))
예제 #10
0
파일: L05.py 프로젝트: AlexWombat/Labb5
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
예제 #11
0
파일: Labb_2.py 프로젝트: AlexWombat/Labb2
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=' ')
예제 #12
0
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)
예제 #13
0
def main():

    atomLista = skapaAtomlista()
    HashadAtomtabel = lagraHashtabell(atomLista)
    loop = True
    while loop:

        mol = Ruta2()
        q = LinkedQ()
        molekylformeler = input("")
        if molekylformeler == '#':
            break
        else:
            for j in range(len(molekylformeler)):
                q.enqueue(molekylformeler[j])
            mol = kollaSyntaxMolekylFormel(q, HashadAtomtabel)
            if isinstance(mol, Ruta2):
                print(weight(mol))
                mg = Molgrafik()
                mg.show(mol)
            else:
                print(mol)
예제 #14
0
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)
예제 #15
0
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=" ")
예제 #16
0
def storeFormula(formel):
    q = LinkedQ()
    numlist = []
    formel = list(formel)
    for tecken in formel:
        if tecken.isdigit():
            numlist.append(tecken)
        else:
            if numlist:
                num_node = ''.join(numlist)
                q.enqueue(num_node)
                numlist = []
            q.enqueue(tecken)

    if numlist:
        num_node = ''.join(numlist)
        q.enqueue(num_node)

    print('1. ' + str(numlist))
    print('2. ' + (num_node))
    return q
예제 #17
0
파일: bfs.py 프로젝트: Ceasarna/KTH
            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!")
예제 #18
0
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)
예제 #19
0
파일: 2_lab4.py 프로젝트: lindissy/DD1320
    for a in range(3):
        s = list(startord)
        for i in range(26):
            s[a] = chr(97 + i)
            ordet = "".join(s)
            if ordet in svenska and not (ordet in gamla):
                gamla.put(ordet)
                q.enqueue(ordet)
                print(ordet)


if __name__ == '__main__':
    svenska = Bintree()
    gamla = Bintree()
    q = LinkedQ()
    q.enqueue(input("Startord??"))
    slutord = input("Slutord??")

    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
                #makechildren(ordet,q)
            else:
                svenska.put(ordet)
        print("\n")
    print("ute" in svenska)
    print("hit" in svenska)

    while not q.isEmpty():
예제 #20
0
파일: v5.py 프로젝트: fabianrevilla/tilda
    sys.exit()


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)

예제 #21
0
파일: bfsv2.py 프로젝트: lindissy/DD1320
                if ordet not in gamla:
                    q.enqueue(ordet)
                gamla.put(ordet)


if __name__ == '__main__':

    # count = 0;

    startord = input("Vilket är ditt startord? ")

    slutord = input("Vilket är ditt slutord? ")

    q = LinkedQ()

    q.enqueue(startord)

    ordlista = Bintree()

    gamla = Bintree()

    with open("word3.txt", "r", encoding="utf-8") as svenskfil:
        for rad in svenskfil:
            ordet = rad.strip()  # Ett trebokstavsord per rad
            if ordet in ordlista:
                continue  #print(ordet, end = " ")
            else:
                ordlista.put(ordet)  # in i sökträdet

    while not q.isEmpty():
        nod = q.dequeue()
예제 #22
0
from linkedQFile import LinkedQ
from bintreeFile import Bintree


class ParentNode:
    """ Klass som skapar en länkad lista där barnen pekar på sin förälder """
    def __init__(self, word, parent=None):
        self.word = word
        self.parent = parent

    def writechain(self):
        if self.parent:
            self.parent.writechain()  # kalla på writechain med sin parent

        print(self.word)


if __name__ == '__main__':
    startord = input('Vad är startordet?\n')
    print('Hej')

    q = LinkedQ()  # skapar en kö
    gamla = Bintree()  # dumbarnen

    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
예제 #23
0
from linkedQFile import LinkedQ
from linkedQFile import Node
#from arrayQFile import ArrayQ
a=input("Vilken ordning_in ligger korten i?") #Lagrar input i en sträng
ordning_in=LinkedQ()                          #Skapar objektet för inordningen
a=a.split()                                   #Gör strängen till en lista utan mellanslag
for indx, i in enumerate(a):                  #Omvandlar varje character i listan till integer
    ordning_in.enqueue(int(i))

/Users/fabian/Desktop/skolskit/Tilda/Datorlabbar/d1/test.py
k=len(a)
svar=k*[0]
for i in range(k):
    #ordning_in.disp()
    x=ordning_in.dequeue()  #Plockar ut det översta kortet
    ordning_in.enqueue(x)
    x=ordning_in.dequeue()
    ordning_in.disp()
    svar[i]=int(x)

print("svar = ",svar)
#RÄTT ORDNING 7 1 12 2 8 3 11 4 9 5 13 6 10
예제 #24
0
    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")
예제 #25
0
def storeInput(enkel_molekyl):
    q = LinkedQ()
    for i in enkel_molekyl:
        q.enqueue(i)
    q.enqueue(".")
    return q
예제 #26
0
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)