검색어 입력폼

[자료구조]threadtree

등록일 2006.03.26 파일확장자 C언어 (cpp) | 가격 500원

소개글

threadtree.cpp

컴파일 실행환경

C++

본문내용

#include <iostream.h>

class threadtree;
class threaditerator;

//********class threadnode********
class threadnode {
//threadnode 클래스 정의
friend class threadtree;
friend class threaditerator;

public:
threadnode(int element)
{
//threadnode 생성자
print=true;
//print필드는 트리출력을 위해 만든 필드
leftthread=true;
rightthread=true;
//왼쪽, 오르쪽 스레드
data = element;
leftchild=0;
rightchild=0;
//왼쪽, 오른쪽 자식
}

private:
bool print;
bool leftthread;
threadnode *leftchild;
int data;
threadnode *rightchild;
bool rightthread;
};

//********class threadtree********
class threadtree {
//threadtree 클래스의 선언

friend class threaditerator;
friend class threadnode;

public:
threadtree() {
//threadtree의 생성자
root=new threadnode(0);
//root노드를 헤드노드로 가지고 있다.
root->leftthread=true; root->leftchild=root;
//root의 왼쪽 자식에 트리가 삽입된다.
root->rightthread=false; root->rightchild=root;
}

void add();
threadnode* attach(int k);
void delnode();
void del(threadnode* i);
void trip();
void travel(int which);
void display();
threadnode* inordersucc(threadnode* r);
threadnode* inorderbef(threadnode* r);
void rightinsert(threadnode* s,threadnode* r);
void leftinsert(threadnode* s,threadnode* r);
//트리 연산 함수들
private:
threadnode *root; //root를 나타내는 포인터 노드
threadnode *cur; //편의를 의한 포인터 노드 선언
};

//********class threaditerator********
class threaditerator {
//threaditerator 클래스 선언
friend class threadtree;
friend class threadnode;

public:
int *next(); //중위순회를 위한 다음 노드 데이터 반환
void inorder(); //중의순회 함수
threaditerator(threadtree tree):t(tree) {currentnode=t.root;};
//threadnode* inordersucc(threadnode* r);

private:
threadtree t;
threadnode *currentnode;
};

참고 자료

없음
다운로드 맨위로