-
Notifications
You must be signed in to change notification settings - Fork 0
트리 ADT
jeongmin edited this page Jan 14, 2023
·
2 revisions
typedef struct s_node
{
void *content;
struct s_node *parent;
struct s_node *left;
struct s_node *right;
} t_tnode;
- 명령어를 저장하는 구문 트리 생성 시 사용
- binary tree
#include "ds_tree.h"
t_tnode *init_node(void *content);
사용예시
int main(int argc, char **argv, char **envp)
{
t_token *token; //토큰이 할당 되어있다고 가정
t_tnode *new;
new = init_node(NULL);
new = init_node(token);
}
#include "ds_tree.h"
void set_content(t_tnode *node, void *content);
#include "ds_tree.h"
t_tnode *add_lchild(t_tnode *node, void *content);
t_tnode *add_rchild(t_tnode *node, void *content);
설명
- content를 가지는 new 노드를 생성 후 node의 child로 연결
- 현재 코드에서 사용되지 않아 삭제될 수 있음
#include "ds_tree.h"
void set_lchild(t_tnode *node, t_tnode *left);
void set_rchild(t_tnode *node, t_tnode *right);
설명
- node에 child 연결
- child의 parent에 node를 연결
#include "ds_tree.h"
void del_node(t_tnode *node, void (*del)(void *));
설명
- node의 content는 함수 포인터 del을 이용하여 삭제
- node 메모리 해제
#include "ds_tree.h"
t_tnode *clear_node(t_tnode *node, void (*del)(void *));
설명
- tree에 연결되어 있는 모든 노드를 삭제
- 내부에서 모든 노드에 대해
del_node
함수를 호출
- 내부에서 모든 노드에 대해
- node의 content는 함수 포인터 del을 이용하여 삭제
반환값
- NULL 반환
- 코드에서 함수를 호출하는 경우 대부분 메모리 할당 실패 오류 발생
#include "ds_tree.h"
void *pop_node(t_tnode *node);
설명
- node 메모리 해제
- node의 content 반환
#include "ds_tree.h"
void preorder(t_tnode *node, int level, char *direction);
설명
- preorder(루트->왼쪽 자식->오른쪽 자식)순으로 트리 순회하면서 node의 content 출력
- 디버깅용이라 이후 삭제할 수 있음
사용예시
int main(int argc, char **argv, char **envp)
{
t_tnode *tree;
preorder(tree, 0, "root");
}
wonyang & jeongmin의 미니쉘 뿌수기 !
- Summary: This project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.
- 자세한 Subject 설명 : 📚 Subject
- 더 자세한 내용은 📄Wiki 를 확인해주세요!
프로젝트 기간: 2023.01.04 ~ 01.17
팀원 : wonyang, jeongmin
팀명 : 𝑰𝑺𝑭𝑱 특징
- 대체로 말을 잘 듣고 조용한 편이다.
- 성실하고 계획적이다.
- 타인에게 칭찬과 인정을 받는것에 상당히 민감하다.
- 재미없고 의미없는 일이라도 끝까지 한다.
- 성과를 공개적으로 발표하지 않고도 인정을 받는 것을 좋아한다.
- 자신의 의무를 다했다고 다른 사람들에게 인정받고 싶지만, 주목을 받고 싶지는 않다.
- 다른 사람 앞에서 발표하는 것을 두려워 한다.