예제 #1
0
class Queue:
    def __init__(self):
        self.queue = LinkedList()

    def enqueue(self, obj):
        self.queue.add(obj)

    def dequeue(self):
        return self.queue.poll_first()

    def size(self):
        return self.queue.size()

    def isEmpty(self):
        return self.queue.is_empty()
예제 #2
0
class DeQueue:
    def __init__(self):
        self.queue = LinkedList()

    def enqueue_from_rear(self, obj):
        self.queue.add(obj)

    def enqueue_from_front(self, obj):
        self.queue.add_first(obj)

    def dequeue_from_rear(self):
        return self.queue.poll_last()

    def dequeue_from_front(self):
        return self.queue.poll_first()

    def size(self):
        return self.queue.size()

    def is_empty(self):
        return self.queue.is_empty()
예제 #3
0
    def hashing_num(self):
        for i in range(11):
            self.list.append(LinkedList())
        number = read_from_file("number.txt")
        for i in range(len(number)):
            res = int(number[i]) % 11
            self.list[res].sort(number[i])
            # print(number[i])
        self.display_hash()
        self.get_number()
        self.display_hash()

        try:
            f = open("number.txt", 'r+')
        except IOError:
            print("number.txt file not found.")
        else:
            f.truncate()
            for i in range(11):
                if self.list[i].is_empty():
                    continue
                append("number.txt", self.list[i])
예제 #4
0
class Stack:
    def __init__(self):
        self.stack = LinkedList()

    def push(self, obj):
        self.stack.add(obj)

    def pop(self):
        return self.stack.poll_last()

    def peak(self):
        return self.stack.get_last()

    def size(self):
        return self.stack.size()

    def isEmpty(self):
        return self.stack.is_empty()
예제 #5
0
 def __init__(self):
     self.queue = LinkedList()
 def __init__(self):
     self.customer_list = LinkedList()
     self.company_list = LinkedList()
class CompanyShareWithLinkedList:
    def __init__(self):
        self.customer_list = LinkedList()
        self.company_list = LinkedList()

    def add_new_customer(self):

        customer_data = FileLoad.json_file_load("json_file/customer.json")
        for i in customer_data:
            self.customer_list.add(i)
        try:
            customer_id = input("Enter customer id : ").strip()
            customer_name = input("Enter customer name : ").strip().upper()
            balance = input(
                "Enter balance to add share market account : ").strip()
            if not customer_id.isnumeric() or not customer_name.isalpha(
            ) or not balance.isnumeric():
                raise ValueError
        except ValueError:
            print("You have entered wrong data.")
            return
        data = {}
        new_customer = {
            "id": customer_id,
            "name": customer_name,
            "balance": balance,
            "data": data
        }
        flag = True
        for i in range(self.customer_list.size()):
            temp = self.customer_list.get_by_index(i)
            if temp["id"] == customer_id or str(temp["name"]) == customer_name:
                print("Your account already available.")
                flag = False
                break
        if flag:
            self.customer_list.add(new_customer)

        list = []
        size = self.customer_list.size()
        for i in range(size):
            list.append(self.customer_list.poll_first())

        FileLoad.json_file_write("json_file/customer.json", list)

    def add_new_company(self):

        company_data = FileLoad.json_file_load("json_file/company.json")
        for i in company_data:
            self.company_list.add(i)
        try:
            company_name = input("Enter company name : ").strip().upper()
            no_of_share = input("Enter number of share : ").strip()
            price = input("Enter share per price : ").strip()
            balance = input("Enter balance amount : ").strip()
            if not company_name.isalpha() or not no_of_share.isnumeric(
            ) or not price.isnumeric() or not balance.isnumeric():
                raise ValueError
        except ValueError:
            print("You have entered wrong data.")
            return

        new_company = {
            company_name: {
                "no_of_share": no_of_share,
                "price": price,
                "balance": balance
            }
        }
        flag = True
        for i in range(self.company_list.size()):
            data = self.company_list.get_by_index(i)
            if data.get(company_name) == None:
                print("Your account already available.")
                flag = False
                break
        if flag:
            self.company_list.add(new_company)

        list = []
        size = self.company_list.size()
        for i in range(size):
            list.append(self.company_list.poll_first())
        # print(self.company_list.display())

    def remove_customer(self):

        customer_data = FileLoad.json_file_load("json_file/customer.json")
        for i in customer_data:
            self.customer_list.add(i)
        try:
            customer_id = input("Enter customer id : ").strip()
            customer_name = input("Enter customer name : ").strip().upper()
            if not customer_id.isnumeric() or not customer_name.isalpha():
                raise ValueError
        except ValueError:
            print("You have entered wrong data.")
            return

        for i in range(self.customer_list.size()):
            temp = self.customer_list.get_by_index(i)
            if temp["id"] == customer_id or str(temp["name"]) == customer_name:
                self.customer_list.delete_by_index(i)
                break

        list = []
        size = self.customer_list.size()
        for i in range(size):
            list.append(self.customer_list.poll_first())

        FileLoad.json_file_write("json_file/customer.json", list)

    def remove_company(self):

        company_data = FileLoad.json_file_load("json_file/company.json")
        for i in company_data:
            self.company_list.add(i)
        try:
            company_name = input("Enter company name : ").strip().upper()
            if not company_name.isalpha():
                raise ValueError
        except ValueError:
            print("You have entered wrong data.")
            return

        flag = True
        for i in range(self.company_list.size()):
            data = self.company_list.get_by_index(i)
            if data.get(company_name) == None:
                self.company_list.delete_by_index(i)
                break

        list = []
        size = self.company_list.size()
        for i in range(size):
            list.append(self.company_list.poll_first())
        # print(self.company_list.display())

    def save(self):
        pass
예제 #8
0
    def __init__(self):

        self.list = LinkedList()
예제 #9
0
class OrderedList:
    def __init__(self):

        self.list = LinkedList()

    def orderedList(self):
        number = IO.read_from_file("number.txt")
        for j in number:
            self.list.add(j)
        self.list.display()
        n = input('\nEnter number :').strip()
        if self.list.search(n):
            self.list.remove(n)
            print("Removed")
        else:
            self.list.add(n)
            print("Added")
        self.list.display()
        IO.write_to_file("number.txt", self.list)
예제 #10
0
class UnOrderedList:
    def __init__(self):

        self.list = LinkedList()

    def unorderedList(self):
        word = IO.read_from_file("abc.txt")
        for j in word:
            self.list.add(j)
        self.list.display()
        w = input('\nEnter word :').strip()
        if self.list.search(w):
            self.list.remove(w)
            print("Removed")
        else:
            self.list.add(w)
            print("Added")
        self.list.display()
        IO.write_to_file("abc.txt", self.list)
예제 #11
0
 def __init__(self):
     self.stack = LinkedList()