분류 전체보기
-
[2019 동계 모각코] 4차시 - 결과모여서 각자 코딩/2019 동계 모각코 2022. 3. 13. 00:06
이진트리 이진트리 구조를 이해하고 구현하는 것을 목표로 함 이진트리를 구현하는 BinaryTree클래스를 작성했고 이 클래스는 트리 삽입 메소드, 트리 탐색 메소드, 후위순환 메소드, 트리 깊이 계산 메소드로 구성된다. 1) 필드 변수와 생성자 left와 right는 key를 기준으로 왼쪽, 오른쪽으로의 연결을 나타낸다. 2) 삽입메소드 : BinaryTree형의 포인터를 만들어 삽입할 자리에 이동해 삽입한다. : key의 값보다 작은 수는 왼쪽에 큰수는 오른쪽에 삽입한다. 트리는 key값을 기준으로 왼쪽과 오른쪽으로 나누어져 경우를 나누는게 중요한 것을 느꼈다. 3) 탐색메소드 : 탐색할 값을 key값과 비교하며 포인터를 이동시켜 찾는다. 4) 후위순회 메소드 : 재귀를 이용하여 트리를 ..
-
[2019 동계 모각코] 3차시 - 결과모여서 각자 코딩/2019 동계 모각코 2022. 3. 13. 00:03
연결리스트를 이용한 stak구조 구현 & 응용 연결리스트를 이용하여 stack구조를 구현한 클래스를 작성하고 그 클래스를 이용하여 사칙연산으로 이루어진 문자열을 입력받았을 때 괄호 쌍들의 인덱스 값을 반환하고 괄호쓰기가 맞는지 틀린지 결정하는 클래스를 작성한다. stack을 구현한 클래스는 연결리스트에 노드를 삽입하는 메소드와 노드를 삭제하고 값을 반환하는 메소드로 이루어진다. 1) 삽입메소드 - add() : 제일 최근에 삽입된 노드를 head로 하여 삽입한다. 2) 삭제메소드 - pop() : 제일 마지막에 삽입된 노드를 삭제하고 삭제한 노드의 값을 반환한다. 사칙연산에서 괄호의 인덱스값과 괄호쓰기가 맞는지 결정하기 위한 클래스 : 사칙연산을 입력받아 글자 하나씩 배열에 저장하고 반복문을 통해 괄호의..
-
[2019 동계 모각코] 3차시 - 시작모여서 각자 코딩/2019 동계 모각코 2022. 3. 13. 00:01
연결리스트 stack구현 지난 모각코가 끝나고 DoubleLinkedList를 이용한 stack을 구현했었는데 이번에는 LinkedList를 이용한 stack을 구현할 것이다. 1. LinkedList를 이용한 LinkedStack을 구현하고 이를 수행하는 테스트 클래스 작성하기 입력으로 받은 문자열에서 대응하는 괄호의 쌍들의 인덱스 값들을 프린트하고 괄호가 맞게 되어있는지 여부를 판정 사칙연산과 괄호들이 입력되면 괄호들의 인덱스와 괄호쓰기가 맞는지 여부를 프린트
-
[2019 동계 모각코] 2차시 - 추가모여서 각자 코딩/2019 동계 모각코 2022. 3. 13. 00:00
이중연결리스트 이중연결리스트를 통해 stack 구조를 구현했다. 1) 삽입메소드 - add() : 삽입할 노드를 head로 하여 삽입한다. head가 비었을 경우 새로 노드를 만들어 head로 해주고 아닐경우엔 next와 prev를 통해 연결한다. 2) 삭제메소드 - remove() : 마지막에 삽입된 노드, 즉 head를 삭제한다. head를 먼저 다음 노드로 바꾸고 연결을 null로 하여 삭제한다. 3) print() : head의 값부터 끝 노드의 값까지 순서대로 출력하고 끝 노드 데이터 값부터 head의 값까지 순서대로 출력한다. 4) 결과 느낀점 모각코 때 여러번 이중연결리스트를 다양하게 구현해봐서 그런지 stack구조의 삽입 삭제 메소드를 작성하는게 어렵지 않았다. 어떻게 코드를 작..
-
[2019 동계 모각코] 2차시 - 결과모여서 각자 코딩/2019 동계 모각코 2022. 3. 12. 23:58
이중연결리스트 1.이론 이중연결리스트를 이용하여 큐(Queue) 구조를 구현하여 이중연결리스트에 대한 전반적인 이해를 했다. 이 중 add메소드의 첫번째 줄을 이해하는 것이 어려워 한 줄로 작성하는 것 대신 풀어서 코드를 작성해봄으로써 이해할 수 있었다. 2.실습 DLinkedList클래스를 작성하여 이중연결리스트를 구현했다. 이 클래스는 큐 구조에서 head노드와 마지막 노드사이의 연결이 없는 이중연결리스트를 구현했다. 1) 삽입메소드-add() : 삽입할 노드를 head로 하여 이중연결한다. head는 빈노드로 생성해 정의한다. head가 없을 땐 데이터로 head를 생성하고 있을경우 새로운 Node를 만들어 Node 클래스에 정의된 prev와 next로 연결해준뒤 head를 바꿔준다. 2)삭..
-
[2019 동계 모각코] 2차시 - 시작모여서 각자 코딩/2019 동계 모각코 2022. 3. 12. 23:55
이중연결리스트 이중연결리스트를 이해하고 자유롭게 여러 자료 구조를 구현함으로써 연결리스트에 대한 완전한 이해를 목표로 한다. 1.이론 이중연결리스트를 이용한 큐(Queue) 구조 구현을 통해 이중연결리스트 이해하기 2. 실습 이중연결리스트를 이용하여 DoubleLinkedList클래스 작성하기 -노드 삽입 삭제 메소드 작성 -이중연결리스트가 비어있는지 확인하는 메소드 작성 -이중연결리스트의 첫번째 노드의 데이터를 반환하는 메소드 작성
-
[2019 동계 모각코] 1차시 - 결과모여서 각자 코딩/2019 동계 모각코 2022. 3. 12. 23:54
연결리스트 2학년 자료구조 수업 강의자료를 통해 공부하고 이해가 되지않는 부분은 선배에게 질문함. 1. 이론 노드에 대한 이해를 바탕으로 노드 클래스 작성하였다. 연결리스트의 숫자 정렬을 위한 메소드인 삽입 메소드와 삭제 메소드 작성하였다. 삽입메소드 포인터를 통해 연결리스트의 데이터를 확인하여 삽입할 위치를 찾고 새로운 노드를 만들어 포인터로 연결한다. 이때 노드의 생성자는 int형 data값과 Node형 next를 저장한다. 삽입할 위치가 맨 앞일 경우 start를 바꿔주어야하므로 조건문을 따로 작성해 주어야한다. 삭제 메소드 포인터를 통해 연결리스트의 삭제할 값 위치를 찾아 포인터 연결을 바꿔 삭제한다. start를 삭제할 경우와 연결리스트 안에 삭제할 값이 없을경우 조건문을 따로 작성해..