천천히 빛나는

알고리즘 : 자료구조(4) 리스트 (List) 본문

STUDY/ALGORITHM

알고리즘 : 자료구조(4) 리스트 (List)

까만콩 •ᴥ• 2023. 9. 21. 16:54

리스트 (List)

List는 배열과 비교하여 이와 같은 모습을 띄고 있다.

실제 값이 저장되는 데이터 필드과 주소가 저장된 링크 필드로 구현되어 있다. 리스트는 삽입, 삭제, 탐색에서 뚜렷한 차이를 보인다.

배열을 생각해보면 값을 삭제하려면 뒤에 있던 값들을 이동시켜야 한다. 하지만 리스트는 주소만 바꿔주면 된다.

 

https://velog.io/@kon6443/Data-Structure-C-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Linked-list

 

[Data Structure] C++ / 자료구조 / Linked list

링크드 리스트란 배열과 비슷하게 선형적으로 연결된 자료구조이다.하지만 인접한 메모리 공간에 저장되는 배열과 다르게 링크드 리스트는 인접한 메모리 공간에 저장되지 않는다.위의 사진처

velog.io

현재 c++로 구현할 시간이 없어서 일단 다른 분의 티스토리를 첨부하도록 하겠다. 구현할 시간이 되면 구현하고 추가할 예정이다.

 

#include <list>
list <int> list;

기본적인 선언방법이다.

 

list.push_back(x); // 뒤에 삽입
list.push_front(x); // 앞에 삽입
list.pop_back(); // 맨 앞 삭제
list.pop_front(); // 맨 뒤 삭제
list.insert(주소, 값); // 해당 주소에 값 삽입 후 삽입한 원소의 주소 반환
list.eraser(주소); // 해당 주소 원소 삭제, 그 다음 원소 주소 반환

원소를 삭제하고 추가하는 함수이다.

 

list.front(); // 맨 앞 원소 반환
list.back(); // 맨 뒤의 원소 반환
list.begin(); // 맨 앞의 원소의 주소
list.end(); // 맨 마지막 원소의 주소
list.rbegin(); // 뒤에서부터 접근할 때 사용. begin과 동일
list.rend(); // 뒤에서부터 원소를 접근할 때 사용

list에서 접근할 수 있는 값들이다

 

list.reverse(); // 순서 바꾸기
list.sort(); // 오름차순으로 정렬
list.swap(list2); // list2와 바꾸기
list.splice(list의 주소, list2); // list의 주소에 list2의 원소를 모두 붙인다

list.size(); // 원소 개수 반환
list.remove(x); // x와 같은 원소를 모두 제거

그 외에 사용되는 함수이다.

 

https://velog.io/@youhyeoneee/C-STL-%EB%A6%AC%EC%8A%A4%ED%8A%B8list

 

[C++] STL - 리스트(List)

list의 사용헤더파일 사용선언 기본 list<Data Type > 변수 이름;list 의 멤버 함수list li으로 선언했을 경우li.front()맨 앞의 원소를 반환 ,참조li.back()맨 뒤의 원소를 반환, 참조li.back()맨 뒤의 원소를 반

velog.io