프로그래밍 공부

자료구조 코딩 연습1

응_비 2021. 5. 22. 18:28
# 1차원 배열 리스트
fruit = [ "banana", "apple", "orange"]
print(fruit)
['banana', 'appple', 'orange']

# 2차원 배열 리스트
data = [["banana", "apple", "orange"], ["monkey", "fox", "dog"]]
print(data[0][2], data[1][1])
print(orange fox)

data = [[fruite, ["monkey", "fox", "dog"]]
print(data)
[['banana', 'apple', 'orange'], ['monkey', 'fox', 'dog']]

 

 

# Linkedlist 연결리스트 연습
Class LinkedList
	def__inif__(self):
    	self.root = node()

	def append(self, item):
    	newNode = Node(item)
   	 curNode = self.root
    if curNode.item == None:
    	self.root = newnode
    else:
    	while curNode.link != None:
        	curNode = curNode.link
        curNode.link = newNode
        
    def insert(self, idx, item):
    	newNode = Node(item)
        curnode = self.root
        if idx == 0:
        	tmp = self.root
        	self.root = newNode
        	newNode.link = tmp
        else:
        	for i in range(idx -1)
            curNode = curNode.link
            tmp = curNode.link
            curNode.link = newNode
            newNode.link = tmp
    def delete(self, item):
    	preNode = curNode = self.root
        if curNode.item = item:
        	self.root = curNode.link
        else:
        	while curNode.link != None:
            	preNode = curNode
                curNode = curNode.link
            if curNode.item == item:
              	preNode.link = curNode.link
     def print(self):
     	curNode = selfroot
        print(CurNode.item)
        while curnode.link != None:
        	curNode = curNode.link
            curNode = curNode.link
            print(curNode.item)
   

 

 

class Queue:
    def __init__(self):
        self.q = []
    def isEmpty(self):
        return len(self.q) == 0
    def enQueue(self, item):
        self.q.append(item)
    def deQueue(self):
        if self.isEmpty() == True:
            return None
        else:
            return self.q.pop(0)
    def peek(self):
        return self.q[0]

 

 

class Stack:
    def __init__(self):
        self.s = []
    def push(self, item):
        self.s.append(item)
    def pop(self):
        if self.isEmpty() == False:
            return self.s.pop(-1)
        else:
            return None
    def peek(self):
        if self.isEmpty() == False:
            return self.s[-1]
        else:
            return None

 

class BinaryTree:
    def __init__(self):
        self.t = [None]
    def append(self, item):
        self.t.append(item)
    def getChild(self, item):
        if item in self.t:
            k = self.t.index(item)
            lidx = 2 * k
            ridx = 2 * k + 1
            if lidx <= self.size():
                lnode = self.t[lidx]
            else:
                lnode = None
            if ridx <= self.size():
                rnode = self.t[ridx]
            else:
                rnode = None    
            return lnode, rnode
        else:
            print('item not found~')