데이터 구조 --- 트 리 (Python)

지난 글 스 택 이라는 개념 이 생 긴 뒤 나무 한 그루 를 만 드 는 것 도 쉬 워 졌 다 고 믿는다.본 고 에서 구축 한 나 무 는 전통 적 인 나무 입 니 다. 즉, 부모 노드 에서 여러 개의 키 노드 를 가 질 수 있 습 니 다. 이 진 트 리 가 아 닙 니 다. 제 목 표 는 SPADE 알고리즘 을 깔 기 위 한 것 이지 찾 는 것 이 아 닙 니 다.
       먼저 저 는 이런 나 무 를 만 들 고 싶 습 니 다. 뿌리 노드 에 A, B, C 세 가지 요소 가 있 습 니 다. A 요소 에 D, E 요소 가 있 고 C 요소 에 F 요소 가 있 습 니 다. E 요소 에 G, H, I, K 요소 가 있 습 니 다.finallist 는 최종 목록 으로 트 리 구조 (문자열 형식) 를 저장 합 니 다.
       쓸데없는 말 을 많이 하지 않 고 코드 를 직접 올 렸 습 니 다. 코드 는 스스로 두 드 렸 습 니 다. 만약 에 천둥 과 번개 가 있 으 면 순 전 히 헛소리 입 니 다. 코드 가 잘 알 고 오래된 규칙 에 주석 을 달 지 않 습 니 다. 같은 업 종 에 서 는 복사 하 십시오. 학생 들 은 베 끼 지 마 십시오.
#coding:utf-8

class Tree(object):
    def __init__(self):
        self.queue = []
        self.list = []
        self.finallist = []
        self.topright = 0
    def addin(self):
        while True:
            if self.queue == []:
                num = input("   root     :")
                print("     :")
                for i in range(num):
                    ele = raw_input()
                    self.queue.append(ele)
                    self.topright += 1
                self.topright -= 1
                self.finallist.append("root->%s" %self.queue)
            else:
                x = self.queue[0]
                self.queue.pop(0)
                num = input("   %s        :" %x)
                if num != 0:
                    print("     :")
                    for i in range(num):
                        ele = raw_input()
                        self.queue.append(ele)
                        self.list.append(ele)
                        self.topright += 1
                    self.topright -= 1
                if self.list != []:
                    self.finallist.append("%s->%s" %(x, self.list))
                    self.list = []
                if self.queue == []:
                    print(self.finallist)
                    break

s = Tree()
s.addin()

입 출력 결 과 는 다음 과 같 습 니 다.
   root     :3
     :
a
b
c
   a        :2
     :
d
e
   b        :0
   c        :1
     :
f
   d        :0
   e        :4
     :
g
h
i
k
   f        :0
   g        :0
   h        :0
   i        :0
   k        :0
["root->['a', 'b', 'c']", "a->['d', 'e']", "c->['f']", "e->['g', 'h', 'i', 'k']"]

좋은 웹페이지 즐겨찾기