binary tree에서 삽입 부분을 만들고 있는데 삽입 부분부터 실행이 안돼서 뭐가 문제인지 모르겠네요.
Tree를 관리할 Tree , Node를 관리할 TreeNode, Main으로 구성되어 있는데요.
소스 보시면 Tree 클래스 소스에서 수행을하다가 G를 삽입하고 그 후에 I를 삽입하는 과정에서 current->rightnode가 null이기때문에 newNode로 Node를 만들어서 current->rightnode를 새로운 노드로 지정하려고 하는데 그 부분에서 에러가 뜹니다...
뭐가 어디서 문제인지 디버깅을 해봐도 주소가 할당이 안된것에 계속 데이터를 집어넣으려고 해서 문제가 되는것 같은데 어렵네요..
java만 4년정도 하다가 c/c++을 하려고 하니 힘드네요 (java에서 잘 돌아가는 코드 포인터써서 c++로 만들어보고 있는 중입니다.)
TreeNode.h#pragma once#include <iostream>classTreeNode{public:chardata;TreeNode*leftnode;TreeNode*rightnode;TreeNode::TreeNode(){printf("TreeNode create 1 \n");data=0;leftnode=NULL;rightnode=NULL;}TreeNode::TreeNode(chard){data=d;leftnode=NULL;rightnode=NULL;}};-----------------------Tree.cpp#include <iostream>#include "헤더.h"classTree{public:TreeNode*root;// 루트 노드 변수 선언Tree(){root=newTreeNode;// 루트 노드 힙 메모리 할당}voidinsertBST(chardata){// BST에 데이터 삽입*root=insertData(root,data);}TreeNodeinsertData(TreeNode*root,chardata){// 노드를 할당하여 데이터 삽입TreeNode*current=newTreeNode();current=root;//루트 노드를 현재 노드로 지정TreeNodenewNode(data);// data를 저장할 노드if(current==nullptr||current->data==NULL){//루트 노드가 비어있거나 데이터가 NULL이면 새로운 노드 생성returnnewNode;}else{if(current->data>=newNode.data){// 노드 데이터 값 비교해서 왼쪽 노드로 추가*current->leftnode=insertData(current->leftnode,data);return*current;}else{// 노드 데이터 값 비교해서 오른쪽 노드로 추가*current->rightnode=insertData(current->rightnode,data);return*current;}}deletecurrent;}};-------------------------------------TreeMain.cpp#pragma once#include <iostream>#include "헤더.h"#include "Tree.cpp"intmain(){intnum=0;Tree*bst=newTree;bst->insertBST('G');bst->insertBST('I');bst->insertBST('H');bst->insertBST('D');bst->insertBST('B');bst->insertBST('M');bst->insertBST('N');bst->insertBST('A');bst->insertBST('J');bst->insertBST('E');bst->insertBST('Q');// bst 값 확인 코드는 이렇게 해두고 브랙포인트 걸어서 bst에 들어간 값 확인중입니다.printf("printf Binary Tree ");return0;}
8년 전
0개의 댓글이 있습니다.
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면
온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
Tempo
binary tree에서 삽입 부분을 만들고 있는데 삽입 부분부터 실행이 안돼서 뭐가 문제인지 모르겠네요.
Tree를 관리할 Tree , Node를 관리할 TreeNode, Main으로 구성되어 있는데요.
소스 보시면 Tree 클래스 소스에서 수행을하다가 G를 삽입하고 그 후에 I를 삽입하는 과정에서 current->rightnode가 null이기때문에 newNode로 Node를 만들어서 current->rightnode를 새로운 노드로 지정하려고 하는데 그 부분에서 에러가 뜹니다...
뭐가 어디서 문제인지 디버깅을 해봐도 주소가 할당이 안된것에 계속 데이터를 집어넣으려고 해서 문제가 되는것 같은데 어렵네요..
java만 4년정도 하다가 c/c++을 하려고 하니 힘드네요 (java에서 잘 돌아가는 코드 포인터써서 c++로 만들어보고 있는 중입니다.)
8년 전