C#/자료구조(16)
-
0330 Stack
스택은 가장 최근에 넣은 데이터를 먼저 꺼내서 사용하는 선형적인 자료구조(linear data structure) top에 데이터를 추가(push), 데이터를 꺼낼 때 (pop)도 탑에서 배열/연결 리스트로 구현 ●Array Stack (고정 배열) push 메서드에서는 탑 인덱스를 하나 증가시킨 후에 새 요소 추가 (탑 = -1) pop 메서드에서는 탑 인덱스 요소를 가져오고 탑 인덱스 하나 감소 public class StackArray { //top private int top; //배열 생성 private string[] arr; public bool IsEmpty { get { return this.top == -1; } } public StackArray(int capacity) { this...
2021.03.30 -
0330 Queue
도착한 순서대로 데이터를 꺼내서 사용하는 선형적인 자료 구조 (선입선출) 배열이나 연결 리스트를 사용해서 구현한다. rear 인덱스에 데이터를 넣고, 데이터를 읽거나 제거할 땐 front 인덱스를 사용한다. ●Circular Queue (고정배열) front 인덱스를 다음 요소로 이동 / 모든 배열 요소를 front 앞으로 당긴다. 원형 동적 배열을 사용해 고정 배열의 문제점을 해결할 수 있다. 1. front/rear 인덱스는 -1로 설정 2. front/rear 데이터는 0으로 설정 3. queue가 가득 찼는지 확인 후 (rear+1)%arr.Length로 데이터 삽입 3-1. rear+1 == front 인덱스인지 확인 4. 데이터 제거 시, 비어있지 않으면 데이터를 읽고 front 하나 증가 마..
2021.03.30 -
0329 Single Linked List 복습
public class Node { public int data; public Node next; public Node(int data) { this.data = data; } } public class SingleLinkedList { private Node head; public SingleLinkedList() { } public void Add(Node node) { if (this.head == null) { //헤드가 비어있을 경우 새 노드를 헤드로 설정 this.head = node; } else { //헤드가 있다면 Node current = this.head; while (current != null && current.next != null) { //노드 값이 널이 아니고, 그 다음 값..
2021.03.30 -
0329 자료구조 (배열과 링크드 리스트)
데이터의 구조를 만들어 데이터를 저장하고 관리하는 것 잘 설계된 자료구조는 실행시간을 최소화하고 소요 공간을 최소한으로 사용하면서 연산을 수행할 수 있도록 한다. 추상적 자료형 : 알고지름이 문제를 해결하는데 필요한 자료의 형태와 그 자료를 사용한 연산들을 수학적으로 정의한 모델 무엇이 구현되어야 하는 지를 정의한 것, 논리적 형태로 정의한다. 자료구조의 종류: 1. 단순 구조 - 기본적인 데이터 타입으로 정수/실수/문자/불 2. 선형 구조 - 배열, 연결 리스트, 스택, 큐 같은 자료구조 3. 비선형 구조 - 1:다 , 다 대 다와 같은 구조. 트리, 그래프 등 4. 파일 구조 Array 순차적/일렬로 저장하는 자료구조 고정 크기를 가지며, 배열은 고정적이다. Jagged Array 가변 배열 [][]..
2021.03.29