zenn.skin 무료버전 배포중!
자세히보기

CS/자료구조 12

CS/자료구조
[Python] 단순 연결리스트 구현

단순 연결리스트는 한 방향으로만 링크를 갖는 구조이다 구현하려는 단순 연결리스트의 추상 데이터 타입은 다음과 같다 isempty() : 비었다면 True를, 아닐 경우 False를 반환 add_first(item) : 연결리스트의 첫 번째 자리에 item을 삽입 add_last(item) : 연결리스트의 마지막에 item을 삽입 insert(pos, item) : pos 위치에 item을 삽입 (첫 번째 자리는 0부터 시작한다) remove(target) : target이 존재할 경우 target을 제거 search_target(target) : target이 존재할 경우 pos를 반환, 없을 경우 False를 반환 search_pos(pos) : pos위치에 존재하는 값을 반환, 없을 경우 False를..

CS/자료구조
[자료구조] 연결 리스트(Linked List)

연결 리스트란? 연결 리스트는 값과 다음 노드에 대한 포인터(주소값)으로 이루어진 선형 리스트이다. 마지막 노드는 Null값을 갖는다. 연결리스트는 연속적인 주소 값을 갖는 배열과 자주 비교된다. 노드의 구성에 따라 단순 연결 리스트, 이중 연결리스트, 원형 연결 리스트가 있다 ※ 연결 리스트와 배열의 비교 배열 특징 값이 연속된 메모리에 순차적으로 저장 장점 - 인덱스를 통한 빠른 접근이 가능 - 구현이 쉽고 직관적이다 단점 - 미리 값을 할당하므로 저장공간이 부족할 경우 오류가 발생 - 반대로 너무 많은 저장공간을 할당할 경우 메모리 낭비가 커짐 - 추가, 삭제 연산을 할 때 연산수가 많아짐 -> 원소의 이동수가 많아진다 연결 리스트 특징 - 값이 연속된 메모리에 저장되지 않고 임의 주소에 저장됨 -..

CS/자료구조
추상 데이터 타입(ADT: Abstract Data Type)

1. 추상적(Abstract)? 추상적이란 구체적의 반대되는 말로 "사물 전체에서 분리시켜 특성, 특징에 집중하는 것"을 말한다 구체적이란 말은 세부적인 하나하나의 특성을 모두 고려하는 것을 말한다. 추상적이란 말과 모호하다는 말이 혼동될 수 있는데, 추상적이라 함은 정말 핵심적인 특성에만 집중하는 것을 의미하고 모호하다는 것은 분명하지 않은 것을 의미한다. 2. 추상 데이터 타입(ADT) 데이터 타입은 데이터의 집합과 해당 데이터에 적용할 수 있는 연산으로 구성된다. int 데이터 : ..., -2, -1, 0, 1, 2, ... 연산 : +, -, *, /, % ADT는 새로운 데이터 타입을 추상적으로 정의한 것을 말한다. 데이터와 연산이 정의되지만 이들을 어떻게 구현할 것인지는 정의되지 않는다. 즉..