이진트리에서의 정렬에 대해서 질문드립니다.
갤3
질문 제목 : 이진트레에서의 정렬에 대하여 질문드립니다질문 내용 :처음 이진트리를 만들었을때 숫자에 대하여 이진트리를 만들었다고 합시다
그렇게 만든 이진트리를 이름순으로 재정렬을 해서 만들고싶은데요.
새로운 루트와 노드들을 만들어서 이진트리를 만드는게 나을까요?? 아니면
기존에 있는 트리의 루트와 노드들의 연결을 분해해서 하는게 나을까요??
그리고 기존의 이진트리를 분해해서 다시 재결합한다면 각각의 연결이 분해되면...
어떻게 찾아가서 다시 연결을 하죠?? ㅠㅠ
-
서희
아... 그런방법도 있군요~!
-
다스리
각 트리의 노드의 갯수를 말씀하시는거죠??? 만약 인서트로 노드를 추가할때도 각트리의 포커스에 맞에 넣어주고요??? 숫자로 정렬된 트리는 숫자의 대소에 맞게 넣어주고 알파벳으로 정렬된 트리에서는 알파벳의 순서에 맞게 넣어주고요??
-
돋되다
그리고 만약 데이터의 불필요한 중복을 막고 싶으시다면 트리 노드에는 키값과 그 키값이 가리키는 포인터 를 두고 진짜 데이터는 다른 곳에 관리하면서 포인터로 각각의 키값에 해당되는 주소를 찾아가도록 하면 됩니다.
-
한말글
이때 중요한 점은 각각의 트리에서 데이터들은 서로 같은 갯수(?)를 유지해야 된다는 것입니다. a트리에 데이터를 넣을때는 b트리에도 똑같이 들어가야 된다는 거죠.
-
제나
아항 알겠습니다 ㅎㅎ 그럼 트리를 2개로 만들어봐야겠네용 ㅎㅎ 좋은 답변 감사드립니다 ㅎㅎ
트리구조를 바꾸자니 너무 머리가 아프더라구요.. 뭔가 하려면 할수있는데 코드 줄이 배로 늘어날거같은 기분이... ㅋㅋ 어떤것이 효율성이 좋은지 물어보고 싶었습니다 ㅎㅎ 감사드립니다 -
앵겨쪼
왜냐하면 어떤 하나의 기준으로 정렬된 데이터를 다른 기준으로 정렬하기 위해서는 이전 데이터를 처음부터 끝까지 다 뒤져야 하기 때문입니다. 그 시간보다는 저장공간이 좀더 필요하더라도 각각의 기준에 따라 다르게 정렬된 데이터를 따로 관리하는것이 더 좋을것 같습니다.
-
중독된
200만개라면 저라면 트리 2개를 따로 만들겠습니다. 트리는 이진트리를 사용한다면 AVL트리를 사용하고요. 다른 정렬이 필요할때마다 트리 구조를 바꾸는것보다 각 키값에따라 정렬된 서로다른 트리를 사용하는게 더 효율적으로 보이네요.
-
가이
이름이 하나 두개면 상관이 없는데 만약 데이터의 갯수가 200만개라고하면 ㅠㅠ 어떻게 하시겠어요??
-
달콤이
이름을 기준으로 한 이진트리를 새로 만드는게 더 쉬우니 그냥 새로 만드세요. 그리고 이름 기준과 숫자 기준의 정렬이 따로 필요하다면 이진트리를 두개 만들어 두는게 더 좋다고 생각합니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |
2691592 | 동적할당 이용 배열선언 질문입니다.ㅠㅠ (3) | 허리달 | 2025-04-15 |
2691542 | /=의 용도를 알려주세요 ㅠㅠ! (2) | 아라 | 2025-04-14 |
2691510 | sizeof 연산자 질문입니다 (2) | 종달 | 2025-04-14 |
2691483 | 파일 오픈시 에러 질문드립니다. (2) | 호습다 | 2025-04-14 |
2691450 | [visual c++ 툴]기초 질문 (3) | 해긴 | 2025-04-13 |