본문 바로가기
728x90

자료구조5

[자료구조] 이중 연결 리스트 • 이중연결리스트(doublely linked list) - 두 개의 포인터를 사용하여 선행 노드와 후속 노드에 모두 연결되는   양방향 구조 ‣ 자료삽입   (1) 새로운 노드 생성하여 데이터 영역에 자료(나)를 저장   (2) (나)의 오른쪽 포인터 영역이 다음 노드(다)를 가리키게 하고,         (나)의 왼쪽 포인터 영역이 이전 노드(가)를 가리키게 함   (3) 후속 노드(다)의 왼쪽 포인터 영역이 (나)를 가리키게 하고,         선행 노드(가)의 오른쪽 포인터 영역 역시 (나)를 가리키게 함 맨 앞 삽입 코드더보기void insert_front_dnode(int data) { // 삽입할 새로운 node 선언 Dnode* newNode = (Dnode*)malloc(sizeo.. 2024. 6. 20.
[자료구조] 덱(deque) • 덱- double-ended queue의 줄임말- 양쪽에서 자료의 삽입과 삭제가 이루어짐 • 덱의 삽입 ‣ 우측에 값을 삽입하는 경우  -rear를 1증가시킨 후 우측에 값을 삽입 ‣ 좌측에 값을 삽입하는 경우  -rear를 1증가시킨 후 좌측에 값을 삽입• 덱의 삭제 ‣ 우측에 값을 삽입하는 경우  -rear를 1감소시킨 후 우측에 값을 삽입 ‣ 좌측에 값을 삽입하는 경우  -rear를 1감소시킨 후 좌측에 값을 삽입 • 실습 문제(가)와 같이 저장된 큐를 몇번의 삽입과 삭제 연산을 통하여 (나)와 같이 수정하려 한다.어떠한 과정을 거쳐야하는지 생각해 보자. TULOWBFLOWER 더보기좌측 삭제 x 2좌측 'F' 삽입우측 삭제우측 'E' 삽입우측 'R' 삽입 2024. 5. 30.
[자료구조] 원형 큐(Circular Queue) • 원형큐의 등장 이유- 큐는 구조가 간단하고 연산이 쉬운 장점이 있지만 front와 rear포인터가 계속 증가하다  보면 큐의 앞부분이 비어 있더라도 자료를 추가로 삽입할 수 없는 문제가 생김- 기존에 저장된 자료를 앞으로 이동시켜 삽입할 공간을 확보하는 방법도 있지만 이 경우에도  자료를 일일이 옮겨 주어야 하는 번거로움과 그에 따른 비용이 발생해 효율성이 떨어짐 • 원형큐- 기본 큐의 처믕과 끝을 논리적(포인터)으로 연결하여 자료의 오버플로가 발생하는 문제점을  보완하고 저장 곤간을 보다 효율적으로 사용한다는 장점을 가짐- front와 rear의 초깃값은 0이며 자료가 입력될 때마다 rear 포인터가 한 칸씩 앞으로 이동하며  연산을 수행함- 모든 공간에 자료가 가득 차게 되면 front 포인터와 .. 2024. 5. 30.
[자료구조] 팩 & 언팩 •10진수 표현 방식이란 컴퓨터 내에 입출력이 빈번할 경우 2진수로 변환하지 않고 10진수 형태로 연산이 가능하도록 하는 방법 10진수 표현 방식에는 팩 10진 방식, 언팩 10진 방식이 있다. 팩 10진 형식은 연산은 가능하지만 출력은 불가능 하고, 언팩 10진 형식은 출력은 가능하지만 연산이 불가능해 각각의 형식으로 변환하여 작업을 수행한다. • 팩 10진 방식 10진수 한 자리를 4비트로 표현하고 가장 오른쪽 4비트에 부호비트를 표시하는 방식으로 양수는 C(16), 음수는 D(16)로 표시한다. ex) +295 0010 1001 0101 1100(2) -295 0010 1001 0101 1101(2) • 언팩 10진 방식 10진수 한 자리를 8비트로 표현하고, 각 바이트의 왼쪽 4비트는 존 비트로 .. 2024. 3. 15.
[자료 구조] 자료구조에 대하여 자료 구조란 자료를 효율적으로 저장하고 관리하는 것을 의미한다. 위의 옷들을 자료라고 생각하면 위의 옷들을 각각 분류해서 상의, 하의로 분류하는 것이 자료구조라고 볼 수 있다. 효율적인 자료구조를 사용함으로써 우리는 메모리의 절약, 프로그램 실행 시간 단축, 프로그램의 구현 용이 등...을 이룰 수 있다. 만약 우리가 코드를 짤 때 계획없이 의식의 흐름대로 코드를 짜면 아래와 같은 스파게티코드를 볼 수 있다... 메모리의 절약 : 프로그램이 목적에 맞게 필요한 정보한을 저장하여 저장 공간을 효율적으로 사용하는 것 프로그램 실행 시간 단축 : 효율적인 알고리즘을 구현하기 위해서는 먼저 효율적인 자료구조를 만들어야 함 프로그램의 구현 용이 : 프로그램의 목적에 맞게 설계된 자료 구조는 프로그램의 구현을 쉽게.. 2024. 3. 12.
728x90