c언어: 2개의 글
1. 리스트의 개념 리스트의 예 - 리스트는 배열과 달리 원소들 간의 논리적인 순서를 위한 자료구조이다. - 원소들 간의 순서는 논리적으로(추상적으로) 지켜지며 원소가 저장되는 물리적인 위치는 상관하지 않는다. - 배열의 순서 : 물리적 VS 리스트의 순서 : 논리적=추상적=의미적 - 배열을 이용해 리스트를 구현하면 논리적인 순서를 지키기 위해 원소의 이동이 많아진다. - 따라서 리스트는 일반적으로 포인터 변수를 이용한 연결 리스트를 이용한다. - 포인터 변수 : 다음 원소를 가리키는 위치 저장 - 포인터 변수와 동적 메모리 할당을 이용해 메모리 낭비를 막을 수 있다. 2. 배열을 이용한 리스트의 구현 자료의 삽입, 삭제가 빈번히 발생하는 상황에서 리스트를 배열로 구현하는 것은 자료 이동으로 인해 컴퓨팅..
1. 큐(queue)의 개념 큐는 줄을 선 순서대로 처리되는 모습으로 표현할 수 있다. - 큐의 스택의 공통점은 객체와 그 객체가 저장되는 순서를 기억하는 방법에 관한 추상 자료형이라는 것 - 가장 먼저 입력된 자료가 가장 먼저 출력되는 관계를 표현한다. - FIFO(First In First Out, 선입선출) - FCFS(First Come First Servce, 선착순 서브) - 한쪽 끝에서는 원소의 삽입 연산만, 다른 한쪽 끝에서는 삭제 연산만 발생 - 두개의 큐 포인터 변수(일반적으로 front, rear로 명명)를 사용한다. - front는 큐의 삭제가 발생하는 지점을 가리킨다. - rear는 큐의 삽입이 발생하는 지점을 가리킨다. - 삽입 시 rear를 증가시키고 삭제 시 front를 감소..