본문 바로가기

자바/자료구조4

[자바][자료구조]재귀하향인터프리터 1.개요 제한된 프로그래밍 언어에 대한 간단한 인터프리터를 만들어 보기로 한다. 언어는 변수 선언, 반복문, 조건문, 함수 등 다양한 구성 요소를 갖지만 여기서는 전체적으로 인터프리터의 작동 원리를 이해하는데 초점을 맞추므로 간단한 배정문에 국한해서 인터프리터를 만들어 본다. 2.동작 public double parseStatement() Statement는 오른쪽 Expression을 파싱한 결과를 왼쪽 식별자에게 배정하고 그 결과를 반환합니다. 배정은 TreeMap의 put 메소드 사용하여 심볼 테이블에 저장합니다. 만약 ‘;’로 끝나지 않는다면 오류메시지를 출력합니다. public double parseExpression() 더하기‘+’와 빼기‘-’의 역할을 배정합니다. public double p.. 2020. 4. 3.
[자바][자료구조] 이중연결자 Iterator 1.개요 원형 이중 연결 리스트에 반복자를 구현하여 다음의 문제를 해결합니다. 2.동작 DLList 코드 동작 public void addFirst(T item) size가 0이라면 head에 바로 추가합니다. 아니라면 새로운 노드와 last node를 연결하고, 새로운 노드와 first node를 연결합니다. last node의 next를 새로운 노드에 연결하고, first node의 prev를 새로운 노드로 설정합니다. 새로운 노드가 시작점이 됩니다. public void addLast(T item) size가 0이라면 head에 바로 추가합니다. 아니라면 새로운 노드와 last node를 연결하고, 새로운 노드와 first node를 연결합니다. last node의 next를 새로운 노드에 연결하고.. 2020. 4. 3.
[자바][자료구조] 이진탐색트리 1.개요 이진 탐색 트리에서 다음의 멤버 메소드를 재귀 함수로 구현한다. 필요 시 보조 메소드 사용한다. 2. 설명 public boolean insert(T data) root가 비었을땐 root에 바로 insert하고 이외의 경우엔 크기 비교로 자리를 찾기위한 탐색을 시작합니다. insert가 성공하면 insertSuccess는 true가 됩니다. 틀리다면 false가 됩니다. public BSTNode insert(BSTNode tree, T data) tree는 현재의 BST Node이고 data는 insert 하기 위한 데이터 값입니다. tree의 item과 data의 크기를 비교합니다. compareTo를 사용해서 data가 크면 오른족, data가 더 작으면 왼쪽을 탐색하고 같으면 inser.. 2020. 4. 3.
[자바][자료구조] DoublyLinked List 이중연결 리스트 삽입 삭제 탐색 1. 목적 원형 이중 연결 리스트(DoublyLinkedList) 의 삽입, 삭제, 탐색을 구현합니다. 코드가 있고 따로 파일을 저장해 놨으니 필요하시다면 다운받아서 사용하세요^^ 2. 코드의 동작 설명 public void addFirst(T item) size가 0이라면 head에 바로 추가합니다. 아니라면 새로운 노드와 last node를 연결하고, 새로운 노드와 first node를 연결합니다. last node의 next를 새로운 노드에 연결하고, first node의 prev를 새로운 노드로 설정합니다. 새로운 노드가 시작점이 됩니다. public void addLast(T item) size가 0이라면 head에 바로 추가합니다. 아니라면 새로운 노드와 last node를 연결하고, 새로운 .. 2020. 3. 31.