Computer/자료구조, 알고리즘
이진 트리
루루(loulou)
2023. 12. 1. 20:17
트리
이진 트리는 모든 노드가 자식이 2개 이하로 구성되어 있다. 노드는 이중 연결 리스트 구조로 만들 수 있다.
이진 탐색 트리
typedef struct{
char word[20];
char mean[200];
}element;
typedef struct treeNode{
element key;
struct treeNode* left;
struct treeNode* right;
}treeNode;
treeNode* searchDic(treeNode* root, element key){
treeNode* p;
int compare;
p = root;
while(p != NULL){
compare = strcmp(key.word, p->key.word);
if(compare<0) p = p->left;
else if(compare>0) p = p->right;
else printf("%s",p->key.word); return p;
}
return p;
}
이진 트리 순회
# 전위 순회
def preorder(node):
if node == None:
return
print(node.data, end = '->')
preorder(node.left)
preorder(node.right)
# 중위 순회
def inorder(node):
if node == None:
return
inorder(node.left)
print(node.data, end = '->')
inorder(node.right)
# 후위 순회
def postorder(node):
if node == None:
return
postorder(node.left)
postorder(node.right)
print(node.data, end = '->')