큐삽입과 삭제가 양 끝에서 각각 수행되는 자료구조일상생활의 은행, 병원 등에서 번호표를 이용한 줄서기가 대표적인 큐선입 선출(FIFO) 원칙 하에 item의 삽입과 삭제 수행삭제는 전단, 삽입은 후단큐 ADT데이터: FIFO의 접근 방법을 유지하는 항목들의 모음Queue(): 비어 있는 새로운 큐 생성isEmpty(): 큐가 비어있으면 True, 아니면 Falseenqueue(x): 항목 x를 큐의 맨 뒤에 추가dequeue(): 큐의 맨 앞에 있는 항목을 꺼내 반환peek(): 큐의 맨 앞에 있는 항목을 삭제하지 않고 반환size(): 큐의 모든 항목들의 개수를 반환clear(): 큐를 공백상태로 만듦큐의 응용CPU의 태스크 스케줄링네트워크 프린터실시간 시스템의 인터럽트 처리다양한 이벤트 구동 방식 컴..
Study/자료구조
스택후입선출(LIFO: Last-In First-Out), 가장 최근에 들어온 데이터가 가장 먼저 나감저장되는 내용: 숫자, 문자열, 클래스 객체, 리스트 등 모든 자료 가능되돌리기, 함수 호출, 괄호 검사, 후위 표기식 계산, 중위 표기식의 후위 표기식 변환 등에 사용기본 기능추가 기능isEmpty스택이 비어있는지 확인clear스택 비움puh스택의 맨 마지막에 항목 추가peek스택의 맨 마지막 항목 반환pop스택의 맨 마지막 항목 삭제size스택 크기 확인Stack ADT스택의 추상자료형데이터: 후입선출의 접근 방법을 유지하는 항목들의 모음연산결과Stack()비어있는 새로운 스택 생성isEmpty()스택이 비어있으면 True, 아니면 Falsepush(e)항목 e를 스택의 맨 위에 추가pop()스택의 ..
리스트항목들이 순서대로 나열되어 있고, 각 항목들은 위치를 가짐L = [item₀, item₁, item₂, ... , itemₙ₋₁]항목의 중복 가능임의의 위치에서도 항목의 삽입과 삭제가 가능Stack, Queue, Deque를 모두 리스트로 구현 가능 (자료의 접근 위치 차이)리스트 ADTList(): 비어있는 새로운 리스트를 만듦insert(pos, e): pos 위치에 새로운 요소 e 삽입delete(pos): pos 위치에 있는 요소를 꺼내고(삭제) 반환isEmpty(pos): 리스트가 비어있는지를 검사getEntry(pos): pos 위치에 있는 요소 반환size(): 리스트 안의 요소의 개수 반환clear(): 리스트 초기화find(item): 리스트에서 item이 있는지 찾아 인덱스 반환r..
자료형문자열single quote, double quote 둘 다 사용 가능배열처럼 msg라는 문자열에 msg[n]을 하면 앞에서 n+1번째 글자, msg[-n]이면 뒤에서 n번째 글자C에서 %d로 변수의 값을 쓰는 것처럼 문자열에 다른 변수의 값을 적용할 수 있음hobby = "테니스"age = 21score = 4.5msg = "취미=%s, 나이=%d, 학점=%f" %(hobby, age, score)리스트크기가 자유롭고 다양한 타입의 데이터를 추가할 수 있는 배열메소드s.append(item): 항목 item을 리스트 s의 맨 뒤에 추가s.extend(lst): 리스트 lst를 s에 추가s.count(item): 리스트에서 항목 item의 개수를 세고 그 개수를 반환s.index(item,[시작],..
자료형과 리터럴수치정수(int): 4, -7, Oxfffe, 073, ...실수(float): 3.14, -5.242, 123.123E-13, ...복소수(complex): complex(1,2), 1+2j, ...부울(bool): true, false시퀀스문자열(str): 'aaa', "BBB", ...리스트(list): [], [1, 'bbb', 3.14], ....튜플(tuple): (1, 2, 3), ('aaa', 'bbb', 'bbb'), ...매핑딕셔너리(dict): {3.14: "pi", 4.5: "score"}, ...집합(set, frozenset): {1, 2, 3}, {'aaa', 'bbb', 'bbb'}, ...변수변수 선언 X파이썬에서는 모든 자료가 클래스로부터 만들어진 객체임변수..
자료구조선형 자료구조항목들을 순서적으로 나열하여 저장리스트: 가장 자유로운 선형 자료구조스택, 큐, 덱: 항목의 접근이 맨 앞(전단)이나 맨 뒤(후단)로 제한비선형 자료구조항목들이 보다 복잡한 연결 관계를 가짐트리: 회사의 조직도나 컴퓨터의 폴더와 같은 계층 구조그래프: 가장 복잡한 연결 관계를 표현알고리즘컴퓨터로 문제를 풀기 위한 단계적인 절차문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 이해할 수 있는 언어로 기술한 것프로그램 = 자료구조 + 알고리즘조건입력: 0개 이상의 입력이 존재하여야 함출력: 1개 이상의 출력이 존재해야 함명백성: 각 명령어의 의미는 모호하지 않고 명확해야 함유한성: 한정된 수의 단계 후에는 반드시 종료되어야 함유효성: 각 명령어들은 실행 가능한 연산이어야 함..