top of page

소스 코드 제출

공개·회원 72명

20260312

/*

// 이진트리

#include <stdio.h>

#include <stdlib.h>

typedef int BTData;


typedef struct _bTreeNode

{

BTData data;

struct _bTreeNode* left;

struct _bTreeNode* right;

}BTreeNode;


BTreeNode* MakeBTreeNode(void)

{

BTreeNode* tmp = (BTreeNode*)malloc(sizeof(BTreeNode));

tmp->left = NULL;

tmp->right = NULL;

return tmp;

}


BTData GetData(BTreeNode* bt)

{

return bt->data;

}


void SetData(BTreeNode* bt, BTData data)

{

bt->data = data;

}


BTreeNode* GetLeftSubTree(BTreeNode* bt)

{

return bt->left;

}


BTreeNode* GetRightSubTree(BTreeNode* bt)

{

return bt->right;

}


void MakeLeftSubTree(BTreeNode* main, BTreeNode* sub)

{

if(main->left != NULL)

{

free(main->left);

}

main->left = sub;

}


void MakeRightSubTree(BTreeNode* main, BTreeNode* sub)

{

if(main->right != NULL)

{

free(main->right);

}

main->right = sub;

}


void Inorder(BTreeNode* bt)

{

if(bt == NULL) return ;


Inorder(bt->left);

printf("%d ", bt->data);

Inorder(bt->right);

}


void Preorder(BTreeNode* bt)

{

if(bt == NULL) return ;


printf("%d ", bt->data);

Preorder(bt->left);

Preorder(bt->right);

}


void Postorder(BTreeNode* bt)

{

if(bt == NULL) return ;


Postorder(bt->left);

Postorder(bt->right);

printf("%d ", bt->data);

}


int main()

{

BTreeNode* bt1 = MakeBTreeNode();

BTreeNode* bt2 = MakeBTreeNode();

BTreeNode* bt3 = MakeBTreeNode();

BTreeNode* bt4 = MakeBTreeNode();


SetData(bt1, 1);

SetData(bt2, 2);

SetData(bt3, 3);

SetData(bt4, 4);


MakeLeftSubTree(bt1, bt2);

MakeRightSubTree(bt1, bt3);

MakeLeftSubTree(bt2, bt4);


Inorder(bt1);

printf("\n");

Preorder(bt1);

printf("\n");

Postorder(bt1);


return 0;

}

*/


// 수식트리

#include <stdio.h>

#include <stdlib.h>

#include <string.h>


typedef int BTData;

struct _bTreeNode* stack = NULL;


typedef struct _bTreeNode

{

BTData data;

struct _bTreeNode* left;

struct _bTreeNode* right;

}BTreeNode;


BTreeNode* MakeBTreeNode(void)

{

BTreeNode* tmp = (BTreeNode*)malloc(sizeof(BTreeNode));

tmp->left = NULL;

tmp->right = NULL;

return tmp;

}


BTData GetData(BTreeNode* bt)

{

return bt->data;

}


void SetData(BTreeNode* bt, BTData data)

{

bt->data = data;

}


BTreeNode* GetLeftSubTree(BTreeNode* bt)

{

return bt->left;

}


BTreeNode* GetRightSubTree(BTreeNode* bt)

{

return bt->right;

}


void MakeLeftSubTree(BTreeNode* main, BTreeNode* sub)

{

if(main->left != NULL)

{

free(main->left);

}

main->left = sub;

}


void MakeRightSubTree(BTreeNode* main, BTreeNode* sub)

{

if(main->right != NULL)

{

free(main->right);

}

main->right = sub;

}


void Postorder(BTreeNode* bt)

{

if(bt == NULL) return ;


Postorder(bt->left);

Postorder(bt->right);

printf("%d ", bt->data);

}


BTreeNode* MakeExpTree(char exp[])

{

}


int main()

{

char exp[] = "12+7*";

BTreeNode* eTree = MakeExpTree(exp);

return 0;

}

4회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page