C ++의 클래스에서 함수 메서드를 재귀 적으로 호출하는 방법은 무엇입니까?

퍼지 너구리

그래서 얼마 전부터 OOP에 대해 배우고 읽기 시작했고, 전반적인 연습과 C ++에서 OOP를 사용하는 것에 익숙해지기 위해 클래스와 객체를 사용하여 내가 아는 모든 데이터 구조를 구현했습니다.

트리 데이터 구조를 구현하고 있으며 메서드를 재귀 적으로 호출하는 방법을 궁금해했습니다 (인수를 전달해야한다는 것을 알고 있습니다). 그래서 main에서 개체를 만들고 특정 메서드를 호출 할 때 작성됩니다. 다음 a.inorder();같으며 a.inorder(root)루트가 개인 속성이기 때문에 아닙니다 .

이것이 가능한가 ?

내 코드 :

#include<iostream>
using namespace std;

struct node
{
    int data;
    node* left;
    node* right;
};

class tree
{
private:
    node* root;
public:
    tree();
    tree(int val);

    void insert(int val);
    void preorder();
    void postorder();
    void inorder();
    int count();
};

tree::tree() : root { NULL }
{
}
tree::tree(int val)
{
    root = new node;
    root->data = val;
    root->left = root->right = NULL;
}

void tree::insert(int val)
{
    if (!root)
    {
        root = new node;
        root->data = val;
        root->left = root->right = NULL;
    }

    else
    {
        node* t = root;
        node* p = NULL;

        while (t)
        {
            p = t;

            if (val > root->data)
                t = root->right;
            else
                t = root->left;
        }

        t = new node;
        t->data = val;
        t->left = t->right = NULL;

        if (p->data > t->data)
            p->left = t;
        else
            p->right = t;
    }
}
void tree::preorder()
{
    if (root)
    {

    }
}
jxh

디자인에서 a node는 자신을 나타냅니다. node재귀 객체 이므로 에서 재귀 메서드를 정의 할 수 있습니다 node.

struct node
{
    int data;
    node* left;
    node* right;

    void preorder() {
        //...
        left->preorder();
        right->preorder();
    }
};

그리고, tree::preorder()단지에 대한 호출을 파견 것이다 root->preorder().

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

수퍼 클래스의 정적 함수에서 호출하는 하위 클래스의 이름을 얻는 방법은 무엇입니까?

분류에서Dev

.NET C #-재귀 호출에서 변수 제네릭 유형을 사용하는 방법은 무엇입니까?

분류에서Dev

C ++에서 정적 메서드를 비동기 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

다른 화면 클래스에서 Python으로 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

C의 호출 함수에서 정적으로 할당 된 문자열의 크기를 계산하는 방법은 무엇입니까?

분류에서Dev

C #에서 문자열 변수의 이름에서 정적 메서드를 호출하는 방법은 무엇입니까?

분류에서Dev

C ++에서 재귀 적으로 역순으로 세트를 인쇄하는 방법은 무엇입니까?

분류에서Dev

외부 클래스에서 내부 클래스의 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

C 프로그래밍에서 재귀를 사용하여 정수의 자릿수 순서를 바꾸는 방법은 무엇입니까?

분류에서Dev

C ++의 상속 된 클래스에서 일반 메서드를 정적 메서드로 변경하는 방법은 무엇입니까?

분류에서Dev

다른 클래스에서 정적 함수를 호출 할 때 "존재하지 않음"을 수정하는 방법은 무엇입니까?

분류에서Dev

Haskell에서 무한 2D 배열을 재귀 적으로 정의하는 방법은 무엇입니까?

분류에서Dev

재귀 함수에서 숫자의 자릿수를 변경하는 방법은 무엇입니까? C ++

분류에서Dev

C ++ Visual Studio의 호출 라인에서 함수 본문으로 이동하는 방법은 무엇입니까?

분류에서Dev

재귀 함수에 대한 메서드 정의를 작성하는 방법은 무엇입니까?

분류에서Dev

클래스 정의 내에서 포인터 멤버 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

C # 개체가 동적으로 함수를 재정의하도록하는 방법은 무엇입니까?

분류에서Dev

Python의 재귀 함수 호출로 인해 발생한 UnboundLocalError를 수정하는 방법은 무엇입니까?

분류에서Dev

elisp에서 함수를 재귀 적으로 전달하는 방법은 무엇입니까?

분류에서Dev

ajax 요청이 완료된 후 1 초 후에 함수를 재귀 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

클라우드 함수에서 : 재귀적인 JavaScript 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

재귀 템플릿 함수의 첫 번째 호출에서 함수를 실행하는 방법은 무엇입니까?

분류에서Dev

R의 벡터에 이진 함수 (비트 XOR)를 재귀 / 반복적으로 적용하는 방법은 무엇입니까?

분류에서Dev

Objective-C에서 메서드를 재정 의하여 하위 클래스를 임시로 정의하는 방법은 무엇입니까?

분류에서Dev

비동기 함수를 재귀 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

Ruby에서 클래스 변수를 혼합 모듈의 동적으로 생성 된 클래스 메서드에 전달하는 방법은 무엇입니까?

분류에서Dev

한 클래스에서 다른 클래스의 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

Powershell 클래스 내에서 Add-Type으로 추가 된 유형의 정적 메서드를 올바르게 호출하는 방법은 무엇입니까?

분류에서Dev

비동기 재귀 함수를 서로 호출하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    수퍼 클래스의 정적 함수에서 호출하는 하위 클래스의 이름을 얻는 방법은 무엇입니까?

  2. 2

    .NET C #-재귀 호출에서 변수 제네릭 유형을 사용하는 방법은 무엇입니까?

  3. 3

    C ++에서 정적 메서드를 비동기 적으로 호출하는 방법은 무엇입니까?

  4. 4

    다른 화면 클래스에서 Python으로 함수를 호출하는 방법은 무엇입니까?

  5. 5

    C의 호출 함수에서 정적으로 할당 된 문자열의 크기를 계산하는 방법은 무엇입니까?

  6. 6

    C #에서 문자열 변수의 이름에서 정적 메서드를 호출하는 방법은 무엇입니까?

  7. 7

    C ++에서 재귀 적으로 역순으로 세트를 인쇄하는 방법은 무엇입니까?

  8. 8

    외부 클래스에서 내부 클래스의 함수를 호출하는 방법은 무엇입니까?

  9. 9

    C 프로그래밍에서 재귀를 사용하여 정수의 자릿수 순서를 바꾸는 방법은 무엇입니까?

  10. 10

    C ++의 상속 된 클래스에서 일반 메서드를 정적 메서드로 변경하는 방법은 무엇입니까?

  11. 11

    다른 클래스에서 정적 함수를 호출 할 때 "존재하지 않음"을 수정하는 방법은 무엇입니까?

  12. 12

    Haskell에서 무한 2D 배열을 재귀 적으로 정의하는 방법은 무엇입니까?

  13. 13

    재귀 함수에서 숫자의 자릿수를 변경하는 방법은 무엇입니까? C ++

  14. 14

    C ++ Visual Studio의 호출 라인에서 함수 본문으로 이동하는 방법은 무엇입니까?

  15. 15

    재귀 함수에 대한 메서드 정의를 작성하는 방법은 무엇입니까?

  16. 16

    클래스 정의 내에서 포인터 멤버 함수를 호출하는 방법은 무엇입니까?

  17. 17

    C # 개체가 동적으로 함수를 재정의하도록하는 방법은 무엇입니까?

  18. 18

    Python의 재귀 함수 호출로 인해 발생한 UnboundLocalError를 수정하는 방법은 무엇입니까?

  19. 19

    elisp에서 함수를 재귀 적으로 전달하는 방법은 무엇입니까?

  20. 20

    ajax 요청이 완료된 후 1 초 후에 함수를 재귀 적으로 호출하는 방법은 무엇입니까?

  21. 21

    클라우드 함수에서 : 재귀적인 JavaScript 함수를 호출하는 방법은 무엇입니까?

  22. 22

    재귀 템플릿 함수의 첫 번째 호출에서 함수를 실행하는 방법은 무엇입니까?

  23. 23

    R의 벡터에 이진 함수 (비트 XOR)를 재귀 / 반복적으로 적용하는 방법은 무엇입니까?

  24. 24

    Objective-C에서 메서드를 재정 의하여 하위 클래스를 임시로 정의하는 방법은 무엇입니까?

  25. 25

    비동기 함수를 재귀 적으로 호출하는 방법은 무엇입니까?

  26. 26

    Ruby에서 클래스 변수를 혼합 모듈의 동적으로 생성 된 클래스 메서드에 전달하는 방법은 무엇입니까?

  27. 27

    한 클래스에서 다른 클래스의 함수를 호출하는 방법은 무엇입니까?

  28. 28

    Powershell 클래스 내에서 Add-Type으로 추가 된 유형의 정적 메서드를 올바르게 호출하는 방법은 무엇입니까?

  29. 29

    비동기 재귀 함수를 서로 호출하는 방법은 무엇입니까?

뜨겁다태그

보관