Array와 List

1. 배열

가장 기본적인 자료구조로써, 논리적 저장 순서와 물리적 저장 순서가 일치하고 인덱스를 통하여 원소에 접근이 가능하다.

대부분의 언어에서 [] 를 이용해서 배열을 제공한다.



2. 리스트

배열과 달리 원소들 간의 논리적인 순서로 연결되어 구성있고, 삽입과 삭제를 수행하기 위해서는 첫 원소부터 모두 search해야한다.

자료구조 Tree에 기본이 되는 자료구조이다.


1) 단순 연결 리스트

방향이 한쪽으로만 구성된 리스트이다.

구현 방법

한개의 노드에는 key값과 다음 노드의 주소를 가르킬 포인터 변수로 구성되어 새로 삽입할때 노드를 새로생성해서 리스트의 끝노드의 포인터로 새로운 노드를 가리키면 된다.

시간 복잡도

노드의 개수가 n개일 경우 탐색/삽입/삭제 모두 O(n)만큼 걸린다.

c언어를 이용한 코드 예



2) 이중 연결 리스트

리스트 방향이 양쪽으로 구성된 리스트이다.

구현방법

  • 한개의 노드에는 key값과 이전 노드와 다음 노드의 주소를 가르킬 포인터 변수 2개로 구성
  • 첫 노드 생성시 left/right node pointer는 null로 초기화
  • 노드 생성시 leftNode는 왼쪽 노드를 rightnode는 null로 생성후 원래 있던 끝 자락 노드의 right node*를 생성한 노드에 연결

c언어를 이용한 코드 예

Tags :

Related Posts

인터페이스

인터페이스

  • Java
  • 2021년 12월 8일

1. 인터페이스란? 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 유지보수를 용이하게 하기 위함 다형성? 동일한 메시지를 수신했을 때 객체의 타입에 따라 다르게 응답할 수 있는 능력 1) 추상클래스와 인터페이스 차이 추상메서드를 가짐으로써 다형성을 극대화하면서 어떤 역할을 구현하는 방법(객체들이 따라야 하는 책임의 집합을 서술한 것)이라는 공통점이 있다....

Read More
상수

상수

상수는 Immutable(불변)한 특징을 갖으며 한 번 할당된 값을 변경할 수 없는 변수이다. 상수 키워드는 const로 선언방식은 변수 var와 같고 short assginment statement는 var키워드 전용이기 때문에 상수는 짧은 대입문 사용이 불가능 하다. 또한, 반드시 컴파일 타임에 실행이 가능한 표현식이어야만 한다....

Read More
블로그 첫 시작 👋

블로그 첫 시작 👋

우선, 나는 말수가 적은 편이다. 말을 적게한다고 생각을 안하는 것이 아니라 머리속에서 생각은 정말 많으나, 그것을 입밖으로 꺼낼때 정리가 되지 않아 버벅거리기도 하고, 조사를 잘못 선택하여 말을 하거나 말을 하는 도중에 머리속이 꼬여 중간에 말을 멈추기도 한다. 말은 생각을 언어로 바꾼 것이기 때문에 많은 생각들을 정리하는 연습과 맞춤법, 올바른 조사사용 등 올바른 언어 습관을 글쓰기를 통해 얻고자 글쓰기를 시작하기로 했다....

Read More