School

    Data-Structure - Linked-List( Application - 2 )

    Data-Structure - Linked-List( Application - 2 )

    Available Space List (1) Available spcae list 또는 avail lsit는 우리가 새로운 node가 필요할 때 평가해서 그 때 그 떄 사용할 수 있습니다. 또한 처음에는 avail는 NULL로 초기화 됩니다. 우리는 node를 malloc()하거나, free()하는 것이 아니라, 아래서 볼 getNode()이나 retNode()를 사용하면 됩니다. 이는 getNode()메소드의 기본적인 작동 방식을 묘사한 것입니다. avail이 있다면 이 avail은 avail->link를 가리키게 하고 avail을 필요로 하는 node에게 avail을 주어주는 방식으로 작동됩니다. 이는 retNode()메소드의 기본적인 작동 방식을 묘사한 것입니다. node->link를 avail을 ..

    Java Programming - Collection Framework

    Java Programming - Collection Framework

    컬렉션 프레임워크 소개 애플리케이션을 개발하다 보면 다수의 객체를 저장해 두고 필요할 때마다 꺼내서 사용하는 경우가 많다. 만약 10개의 Product 객체를 저장해 두고, 필요할 때마다 하나씩 꺼내서 이용한다고 가정해봅시다. 어떻게 Product객체를 효율적으로 추가, 검색, 삭제할지 고민하게 되는데, 가장 간단한 방법은 배열을 이용하는 것입니다. 배열은 쉽게 생성하고 사용할 수 있지만, 저장할 수 있는 객체 수가 배열을 생성할 때 결정되기 때문에 불특정 다수의 객체를 저장하기에는 문제가 있습니다. 물론 배열의 크기를 크게 생성하면 되겠지만, 이것은 좋은 방법이 될 수 없습니다. 배열의 또다른 문제점은 객체를 삭제했을 때 해당 인덱스가 비게 되어 낱알이 듬성듬성 빠진 옥수수가 될 수 있습니다. 그렇게 ..

    Data-Structure - Linked list ( Applications )

    Data-Structure - Linked list ( Applications )

    Polynomials 우리는 다음과 같은 polynomials를 구조체를 통해서 구현을 했었습니다. 근데 이는 linked-list를 통해서도 더욱 효율적이고 간편하게 만들 수 있습니다. 바로 이렇게 생긴 구조체와 자기참조 구조체를 통해서 linked-list를 구현하면 됩니다. data칸에 float형 coef(계수)와 int형 expon(지수)를 넣고 다음 linked-list를 가리킬 link를 만들어 주면 됩니다. 간단합니다!! 각각의 a, b다항식을 위와같이 linked-list로 표현을 해 주었습니다. 기본적인 추가 규칙은 구조체를 활용해서 간단히 구현했을때와 다른것이 없습니다. 그냥 expon(지수)를 비교해서 각각의 경우에 다르게 처리해 주면 끝입니다. 하지만 linked-list답게 포인..

    Data-Structure - Linked Lists

    Data-Structure - Linked Lists

    Sequential Representation은 연속적인 노드들의 데이터가 고정된 거리만큼 떨어져서 존재함을 의미합니다. 하지만 임의 데이터의 Insertion(삽입)과 deletion(삭제)가 매우 비용 효율적이지 못한 작업이 됩니다. 즉 삽입과 삭제에 과도한 행동이 필요하다는 것입니다. 하지만 Linked Representation은 메모리의 어디든지 분포할 수가 있습니다. 또한 ordered list와 달리 안의 데이터들이 모두 다 같은 타입일 필요가 없습니다. Linked Representation은 data fields와 다음 노드를 가리킬 link or pointer fields를 가집니다. 이는 Sequential Representation과 다르게 임의의 데이이터의 삽입과 삭제가 매우 빠릅..