게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++ 프로그래밍 오류좀 여쭤보고 싶습니다.(레드블랙트리)
게시물ID : computer_87774짧은주소 복사하기
작성자 : 내여친예쁘다
추천 : 0
조회수 : 619회
댓글수 : 5개
등록시간 : 2013/05/12 16:30:25

enum color { black, red }; // black = 0, red = 1

class TreeNode{ // 노드 클래스
 friend class Tree;
public:
 TreeNode( const int &d ) // 노드 생성자. 서브트리를 생성한다.
  : leftPtr( 0 ), data( d ), rightPtr( 0 ) // 자기자신은 입력받은 데이터로 초기화, 왼쪽 자식과 오른쪽 자식 생성
 {
  leftPtr->Color = black;
  rightPtr->Color = black;
 }
private:
 TreeNode *leftPtr; // 왼쪽 자식 포인터
 TreeNode *rightPtr; // 오른쪽 자식 포인터
 TreeNode *parPtr; // 부모 포인터
 int data; // 노드에 들어갈 데이터
 color Color; // 노드의 색깔
};

 

오유 컴게님들 안녕하세요? 

 

프로그래밍 과제로 레드블랙트리를 c++로 구현하고 있습니다.

 

레드블랙트리의 조건 중 하나가

 

마지막 잎노드(External Node)는 Black 이어야한다.

 

인데요. 이것을 구현하려고 하는데 이 부분에서 막히네요.

 

새로운 노드를 생성하면서 왼쪽자식과 오른쪽자식 노드들을 0으로 초기화하는데

 

새로운 노드는 다른 클래스의 함수 내에서 색깔을 초기화 해버리는데

 

자식노드들의 색깔을 black 으로 초기화시키는 구문을 어떻게 해야할지 잘 모르겠습니다...

 

저 코드에선 컴파일시에는 에러가 없는데 실행하거나 디버깅을 하면 프로그램이 강제종료 되어버립니다.

 

빨간색으로 칠해놓은 부분에서 에러가 생기는데... 대체 무슨 문제인지 모르겠습니다...

 

저 구문 대신 어떤 구문을 넣어야 하는지...

 

프로그래밍 고수님들 조언좀 부탁드립니다. ㅠㅠ

 

 

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호