은행계좌를 이진트리로 짜는건데<재귀>
- void deleteaccount(TreeNode*tree, int accountNum)
- {
- if (tree != NULL){ //트리 전부 탐색.
- if (tree->accountnum == accountNum) //해당 계좌를 찾으면 양쪽 노드가 비었는지 검사.
- {
- if (tree->left != NULL && tree->right != NULL)
- {
- TreeNode*temp1 = tree;
- TreeNode* temp2 = tree->left;
- tree = tree->right;
- delete temp1;
- tree->left = temp2;
- tree->left->right == NULL;
- tree->left->left == NULL;
- }
- else if (tree->left != NULL && tree->right == NULL)
- {
- TreeNode*temp1 = tree;
- tree = tree->left;
- delete temp1;
- }
- else if (tree->left == NULL && tree->right != NULL)
- {
- TreeNode*temp1 = tree;
- tree = tree->right;
- delete temp1;
- }
- else
- {
- tree = NULL;
- }
- }
- else
- {
- deleteaccount(tree->left, accountNum);
- deleteaccount(tree->right, accountNum);
- }
- }
- else
- {
- cout << "해당 계좌가 없습니다." << endl;
- }
- }
- void Bank::Delete(int accountNum)
- {deleteaccount(root, accountNum);}
이런식으로 짜줬는데
이게 맞는지 의문
TreeNode는 구조체인데
struct TreeNode //구조체 계좌이름, 계좌명, 잔고, 포인터 가 있다.
{
int accountnum;
string name;
int jango;
TreeNode *left;
TreeNode *right;
};
이런형식.
내가 궁금한건
초록색 부분이 이어져있나도 궁금하고..
이게 딜리트가 맞는지도 궁금해서..... 그렇다구.. 흥
http://autogram.tk/이
중고차 어플리케이션 어떤가요?