• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

자바 LinkedList 질문

23.07.17 22:54 작성 조회수 262

1

안녕하세요.

현재 자바를 공부 중인데 자바 표준라이브러리에 있는 LinkedList는 insertAt() 대신 add()가 있는데 insertAt()과 동일하게 봐도 될까요?

그리고 전체 구조도 동일하게 봐도 되는지 질문 드립니다.

감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요 engudengud님!
자바로 공부중이시군요?

자바에서 LinkedList의 add는 이 수업에서 insertAt()함수와 거의 똑같습니다.
자바의 add 함수는 인덱스를 넣으면 해당 인덱스에 데이터 삽입을 하고
인덱스를 넣지 않으면 가장 끝에 삽입되죠.
아래 코드처럼 말이죠.

LinkedList<Integer> list = new LinkedList<Integer>();
list.add(0, 0); // 9번 인덱스에 0추가

list.add(11); // 가장 뒤에 11추가

이 수업에서 우리가 만든 insertAt()함수는 인덱스로만 데이터를 삽입합니다.
아래 코드처럼 말이죠.

let list = new LinkedList();
list.insertAt(0, 0); // 0번 인덱스에 0추가

우리가 만든 연결리스트로 가장 끝에 삽입하려면 다음과 같은 코드를 사용합니다.

list.insertLast(11); //가장 뒤에 11추가

 

자바의 표준 라이브러리가 조금 더 사용하기 편하게(?) 만들어졌습니다.

우리 수업에서 만든 연결리스트는 next만 가지고 있어서 이전 노드는 가리키지 못하고 다음 노드만 가리키는 단방향 연결리스트입니다.

반면 자바 표준 라이브러리의 연결리스트는 next뿐만 아니라 prev로 이전 노드를 가리키고 있는 양항뱡 연결리스트라는 것이 차이점입니다.

궁금증이 해결되셨나요? 😊

engudengud님의 프로필

engudengud

질문자

2023.07.17

네! 감사합니다.

그럼 이 코드를 외워서 써먹어야겠다는 것 보단 코드를 작성하면서 LinkedList를 이해하려고 해봐야겠네요.

맞습니다.
자바와 마찬가지로 대부분 언어에는 연결리스트가 라이브러리도 존재합니다.
코드를 외우기 보다는 연결리스트 구조, 어떻게 구현하는지 이해하는 방식이 좋은 접근인 것 같습니다 ㅎㅎ
이해가 되었다면 그 다음부터는 잘 사용하면 되겠죠? 😀
응원하겠습니다!