본문 바로가기

학교 공부/자료구조4

[자료구조] 연결 이진트리 구현 연결 이진트리 구현TreeNodemake (id, s, TreeNode* tree): 이 함수는 새로운 노드를 동적 할당하고, 트리의 왼쪽 또는 오른쪽 자식 노드로 추가합니다. s 값에 따라 'L'이면 왼쪽 자식, 'R'이면 오른쪽 자식에 추가됩니다.leftChild (TreeNode* v)와 rightChild (TreeNode* v): 각각 트리에서 특정 노드의 왼쪽 자식과 오른쪽 자식을 반환하는 함수입니다.TreeBuild (TreeNode* root, int n): 이 함수는 트리의 루트를 기준으로 나머지 노드들을 입력받아 트리를 완성합니다. 입력받은 각 노드에 대해 왼쪽 자식과 오른쪽 자식 노드를 추가해줍니다.findID (TreeNode* v, int id): 이 함수는 재귀적으로 트리의 노드.. 2024. 9. 6.
[자료구조] 영문자 리스트 ADT 영문자 리스트 ADT 구현이중 연결 리스트 사용! add (r 위치에 e를 갖는 노드 추가하기):리스트의 r번째 위치에 값 e를 갖는 노드를 추가합니다.위치가 잘못되면 "invalid position"을 출력해야 합니다.이중 연결 리스트이기 때문에 노드가 추가될 때 이전 노드와 다음 노드의 연결을 적절히 갱신해야 합니다.delete (r 위치에 있는 노드 제거하기):리스트의 r번째 위치에 있는 노드를 제거합니다.삭제할 위치가 잘못되면 "invalid position"을 출력해야 합니다.삭제 시, 삭제된 노드의 이전과 다음 노드를 서로 연결해야 합니다.get (r 위치에 있는 노드의 값 출력):리스트의 r번째 위치에 있는 노드의 값을 출력합니다.위치가 잘못되면 "invalid position"을 출력해야 .. 2024. 9. 4.
[자료구조] 리스트 ADT 오늘은 리스트 ADT를 다룰 예정이다.리스트 ADT리스트 ADT는 데이터 구조의 한 유형으로, 연속적인 임의의 개체들을 모델링하는 데 사용됩니다.  이는 리스트가 순서가 있는 데이터 항목들의 집합을 나타낸다는 것을 의미합니다.  리스트 ADT는 다음과 같은 특징을 가집니다:연속적인 임의의 개체들:리스트는 여러 개의 요소(element)를 일렬로 나열한 구조입니다. 각 요소는 고유한 위치(인덱스 또는 순위)로 접근할 수 있습니다. 원소에 대한 접근 도구:리스트 ADT는 각 원소에 쉽게 접근할 수 있도록 다양한 연산을 제공합니다. 예를 들어, 리스트에서 특정 위치(순위)에 있는 원소를 가져오거나, 새로운 원소를 특정 위치에 삽입하거나, 기존 원소를 삭제할 수 있습니다. 순위(rank):리스트의 각 원소는 순.. 2024. 9. 4.
[자료구조] 추상자료형 ADT abstract data type (ADT)ADT란??ADT는 추상자료형이라는 말로 데이터 구조의 추상형이다.이게 뭔말인가 싶을텐데 GPT에게 물어보자ADT는 데이터 구조를 "어떻게" 사용하는지에 대한 추상적인 정의입니다.예를 들어, 스택(Stack)이라는 ADT는 "데이터를 쌓아 올리는 구조"와 "맨 위에 있는 데이터만 접근할 수 있는 방법(푸시, 팝)"에 대해 정의합니다. 하지만 스택을 실제로 배열로 구현할지, 연결 리스트로 구현할지에 대한 구체적인 내용은 설명하지 않습니다.ADT는 다음을 명세한다고 한다저장된 데이터데이터에 대한 작업들작업 중 발생 가능한 에러 상황들"명세한다"는 말은 어떤 것에 대해 자세하게 정의하거나 설명하는 것을 의미합니다. 이 경우, "ADT는 다음을 명세"한다는 표현은 AD.. 2024. 9. 4.