728x90 반응형 전체 글43 큐의 기본과 간단구현 1 큐의 개념 큐(Queue) 자료구조는 입구와 출구가 따로 있는 원통 형태다. 6장에서 배운 스택과 대비된다. 입구가 하나라 처음 들어간 것이 가장 마지막에 나오는 FILO 특징과 달리 FIFO(First In Last Out) 특징이다. 큐 구조에서 주의할 점은 들어갈땐 지정해서 들어갈 수 있지만, 나올땐 특정 사람을 선택할 수 없는 것이다. 나올 때는 항상 대기줄 출구에서 가장 가까운 사람이 나올 수 밖에 없는 구조다. 2 큐 원리 큐는 양쪽이 뚫려 있는 구조다. 한쪽에서는 삽입만 진행하고, 다른 쪽에서는 추출만 진행된다. 큐에서 데이터를 삽입하는 것을 enQueue, 추출하는 것을 deQueue라고 한다. 또 front(머리)와 rear(꼬리)가 있다. 데이터를 삽입할 때는 꼬리 바로 다음 위치에.. 2022. 11. 1. 연습문제와 응용문제 1 연습문제** 문제는 처음에 언급한 책에 나와있습니다 **답 :1. 4번2. top, push, pop3. (1) top += 1 (2) top -= 14. 2번5. 2번6. (1) return None (2) return stack[top] 2 응용예제 01헨젤과 그레텔이 돌을 떨어뜨리면서 숲으로 들어가는데 돌아갈때 반대로 돌을 주어오는 프로그램import random# 힘수 선언 부분 ##def isStackFull() : global SIZE, stack, top if (top >= SIZE - 1) : return True else : return Falsedef isStackEmpty() : global SIZE, stack, top .. 2022. 10. 20. 스택의 일반 구현과 응용 1 데이터 삽입 과정 스택에서 데이터를 삽입하는 함수를 만들어 손쉽게 삽입할 수 있다. 하지만 데이터를 삽입할 때 스택이 이미 꽉 찼는지 확인해야 하는데 스택이 다 찼다면 더는 삽입하지 말아야 한다. 스택이 꽉 찼는지 확인하는 방법은 top 값이 스택 크기 -1과 같다면 스택이 꽉 찬 상태이다. ## 스택이 꽉 찼는지 확인하는 함수 ## def isStackFull() : global SIZE, stack, top if (top >= SIZE - 1) : return True else : return False SIZE = 5 stack = ['커피', '녹차', '꿀물', '콜라', '환타'] top = 4 print("스택이 꽉 찼는지 여부 ==>", isStackFull()) 스택에 데이터를 삽입할.. 2022. 10. 20. 스택의 기본과 간단구현 1 스택의 개념 스택(Stack) 자료구조는 한쪽 끝이 막힌 형태이다. 입구 겸 출구를 공통으로 사용하는 모든 형태를 스택 예로 볼 수 있다. 스택의 가장 큰 특징은 FILO(First In Last Out)이라고 하거나 LIFO(Last In First Out)이다. 피로 보단 리포라고 많이 쓴다. 스택의 주의할 점은 넣을 때는 사용자가 원하는 순서로 넣을 수 있지만 빼낼 때는 특정 선택해서 빼낼 수 없다. 빼낼 떄는 항상 가장 위에 있는 것이 나오고 원하는 것을 빼려면 그것의 위치까지 하나하나 다 빼야 하는 것이다. 2 스택의 원리 아까 말했듯이 스택은 한 곳만 열려 있기에 삽입과 추출이 한곳에서 진행된다. 스택에 데이터를 삽입하는 작동을 push라고 하며, 반대로 추출하는 작동을 pop이라고 한다... 2022. 10. 20. 화일의 종류 (1) 마스터 화일 마스터 화일(master file)은 어느 한 시점에 조직의 업무관련 전체 데이터 파일이다. 삽입, 삭제, 수정을 통해 영속적 데이터 레코드를 포함하고 있다. 마스터 화일의 내용은 현재성을 정확히 유지해야 한다. ex) 급여 마스터 화일, 고객 마스터 화일, 인사 마스터 화일, 재고 마스터 화일, 자재 요청 마스터 화일 등 (2) 트랜잭션 화일 트랜잭션(transaction)이란 논리적 작업 단위로서 분리될 수 없는 하나의 건수로 처리되어야 하는 작업을 말한다. 트랜잭션 화일(transaction file)은 마스터 화일에 적용할 트랜잭션의 데이터들을 수록한 파일이다. 마스터 화일에 새로운 레코드를 추가하거나 기존의 레코드를 제거 또는 수정하기 위한 데이터를 갖는다. ( 나중에 자세히.. 2022. 10. 19. 연습문제와 응용예제 1 연습문제 ** 문제는 처음에 언급한 책에 나와있습니다 ** 답 : 1. 3,4번 2. node1.link = node1 3. (1)node2 (2) node3 (3) node3 4. 2번 5. (1) current = head (2) last = last.link (3) last.link = head 6. (1) return current (2) current.link != head (3) current = current.link 2 응용예제 01 현재 위치를 (0,0)이라 가정하고, 편의점 위치(x,y)와 거리가 가까운 순서대로 원형 연결 리스트를 생성하는 프로그램 import random import math ## 클래스와 함수 선언 부분 ## class Node(): def __init__(se.. 2022. 10. 18. 이전 1 2 3 4 5 6 7 8 다음 728x90 반응형