은행계좌를 이진트리로 짜는건데<재귀>

  1. void deleteaccount(TreeNode*tree, int accountNum)
  2. {
  3. if (tree != NULL){ //트리 전부 탐색.
  4. if (tree->accountnum == accountNum) //해당 계좌를 찾으면 양쪽 노드가 비었는지 검사.
  5. {
  6. if (tree->left != NULL && tree->right != NULL)
  7. {
  8. TreeNode*temp1 = tree;
  9. TreeNode* temp2 = tree->left;
  10. tree = tree->right;
  11. delete temp1;
  12. tree->left = temp2;
  13. tree->left->right == NULL;
  14. tree->left->left == NULL;
  15. }
  16. else if (tree->left != NULL && tree->right == NULL)
  17. {
  18. TreeNode*temp1 = tree;
  19. tree = tree->left;
  20. delete temp1;
  21. }
  22. else if (tree->left == NULL && tree->right != NULL)
  23. {
  24. TreeNode*temp1 = tree;
  25. tree = tree->right;
  26. delete temp1;
  27. }
  28. else
  29. {
  30. tree = NULL;
  31. }
  32. }
  33. else
  34. {
  35. deleteaccount(tree->left, accountNum);
  36. deleteaccount(tree->right, accountNum);
  37. }
  38. }
  39. else
  40. {
  41. cout << "해당 계좌가 없습니다." << endl;
  42. }
  43.  
  44. }
  45. void Bank::Delete(int accountNum)
  46. {deleteaccount(root, accountNum);}

이런식으로 짜줬는데

이게 맞는지 의문

TreeNode는 구조체인데

struct TreeNode  //구조체 계좌이름, 계좌명, 잔고, 포인터 가 있다.
{
int accountnum;   
string name;
int jango;
TreeNode *left;
TreeNode *right;
};


이런형식.

내가 궁금한건



초록색 부분이 이어져있나도 궁금하고..


이게 딜리트가 맞는지도 궁금해서..... 그렇다구.. 흥