목록Computer Science/자료구조 (12)
DNF LOVE

[스택과 큐] 1. 스택 : 스택은 탑 모양으로 생각하면 좋을 것이다. 스택은 후입선출(LIFO – Last In First Out)으로 진행된다. 즉, 데이터가 들어오면 아래부터 쌓이게 되고, 데이터가 나갈 때는 가장 최근에 들어온 데이터부터 나가게 된다. A. 스택의 연산 i. Push : 스택에 데이터를 넣는 연산 ii. Pop : 스택에서 데이터를 꺼내는 연산 iii. Top : 스택의 가장 꼭대기를 가리키는 포인터 iv. isEmpty : 스택이 공백인지 아닌지 확인하는 연산 v. peek : Top이 가리키는 데이터를 반환 데이터가 A -> B -> C -> D 이 순서대로 들어있는 스택이라고 할 때, 4번 Pop을 하게 되면 D -> C -> B -> A 이런 순서대로 데이터가 출력된다. 2..
* 앞서 리스트와 배열에 대해 알아보았는데 보통 컴퓨터 관련 학과에 진학하고 2학년 1학기쯤 되면 자료구조를 배우게 된다. 이 자료구조 수업시간에 가장 초기에 하는 구현은 연결리스트 구현이다. 연결리스트의 종류에는 크게 세 가지 정도가 있다. 단일 연결리스트, 원형 연결리스트, 양방향 연결리스트 이렇게 있다. 또 Head와 Tail의 유무 그리고 삽입 위치가 어디에 있냐에 따라 또 구현이 어느정도 달라진다. 연결리스트에서 새로운 노드를 추가할 때 리스트의 머리(head)부분과 꼬리(tail) 중 어디에 저장하여 노드를 연결하냐에 따라 구현이 달라진다는데 각 장단점을 서로 반대로 가지고 있다. 장점 단점 머리 포인터 변수 Tail이 불필요하다 저장된 순서가 유지되지 않는다. 꼬리 저장된 순서가 유지된다 포..
* 자료구조의 가장 간단한 부분인 리스트이다. 저번 학기에 도전했던 몇몇 회사 필테에 링크드리스트 구현 코드가 나왔었다. 기초가 부족했던 나는 폭망했다 ㅎ... 그래서 종강하면 바로 링크드리스트부터 공부해야겠구나 마음을 먹었다. 강하고 보름 내내 놀다가 이틀정도 공부했다. ㅎ 그래서 조금 허접하다. 암튼, 각색하고 리스트를 알기 전에 우선 가장 기본적인 배열을 알아보도록 하자. 배열의 가장 큰 특징은 인덱스를 가지고 있고, 초기에 배열의 크기가 정해진다. 그러고 인덱스 0부터 주어진 배열의 크기 -1 까지 데이터가 해당 인덱스에 따라 데이터를 여러개 가질 수 있는 자료구조이다. 그렇다면 리스트는 무엇인가? 리스트에는 크게 두 가지 종류가 있다. 바로 순차리스트와 연결 리스트다. 1. 순차 리스트 : 배열..