자료구조와 알고리즘 실습 | Data Structures & Algorithms Lab
큐의 기본 개념: 데이터를 enqueue합니다
queue = [None, None, None, None, None]
front = rear = -1
rear += 1
queue[rear] = "화사"
rear += 1
queue[rear] = "솔라"
rear += 1
queue[rear] = "문별"
print("----- 큐 상태 -----")
print ( '[출구] <-- ', end='')
for i in range(0, len(queue), 1) :
print(queue[i], end=' ')
print ( '<-- [입구] ')
Queue basics: enqueue data
queue = [None, None, None, None, None]
front = rear = -1
rear += 1
queue[rear] = "Hwasa"
rear += 1
queue[rear] = "Solar"
rear += 1
queue[rear] = "Moonbyul"
print("----- Queue Status -----")
print ( '[Exit] <-- ', end='')
for i in range(0, len(queue), 1) :
print(queue[i], end=' ')
print ( '<-- [Entrance] ')
큐의 기본 개념: 데이터를 dequeue합니다
queue = ["화사", "솔라", "문별", None, None]
front = -1
rear = 2
print("----- 큐 상태 -----")
print ( '[출구] <-- ', end = ' ')
for i in range(0, len(queue), 1) :
print(queue[i], end = ' ')
print ( '<-- [입구] ')
print("-------------------")
front += 1
data = queue[front]
queue[front] = None
print('deQueue --> ', data)
front += 1
data = queue[front]
queue[front] = None
print('deQueue --> ', data)
front += 1
data = queue[front]
queue[front] = None
print('deQueue --> ', data)
print("-------------------")
print("----- 큐 상태 -----")
print ( '[출구] <-- ', end = '')
for i in range(0, len(queue), 1) :
print(queue[i], end = ' ')
print ( '<-- [입구] ')
Queue basics: dequeue data
queue = ["Hwasa", "Solar", "Moonbyul", None, None]
front = -1
rear = 2
print("----- Queue Status -----")
print ( '[Exit] <-- ', end = ' ')
for i in range(0, len(queue), 1) :
print(queue[i], end = ' ')
print ( '<-- [Entrance] ')
print("-------------------")
front += 1
data = queue[front]
queue[front] = None
print('deQueue --> ', data)
front += 1
data = queue[front]
queue[front] = None
print('deQueue --> ', data)
front += 1
data = queue[front]
queue[front] = None
print('deQueue --> ', data)
print("-------------------")
print("----- Queue Status -----")
print ( '[Exit] <-- ', end = '')
for i in range(0, len(queue), 1) :
print(queue[i], end = ' ')
print ( '<-- [Entrance] ')
큐 Full 상태를 확인하는 함수를 구현합니다
def isQueueFull() :
SIZE = 5
queue = ["화사", "솔라", "문별", "휘인", "선미"]
front = -1
rear = 4
print("큐가 꽉 찼는지 여부 ==>", isQueueFull())
Implements a function to check if the queue is full
def isQueueFull() :
SIZE = 5
queue = ["Hwasa", "Solar", "Moonbyul", "Wheein", "Sunmi"]
front = -1
rear = 4
print("Whether the queue is full ==>", isQueueFull())
큐 Full 확인 후 데이터를 enqueue합니다
def isQueueFull() :
def enQueue(data) :
SIZE = 5
queue = ["화사", "솔라", "문별", "휘인", None]
front = -1
rear = 3
print(queue)
enQueue("선미")
print(queue)
enQueue("재남")
Enqueues data after checking if the queue is full
def isQueueFull() :
def enQueue(data) :
SIZE = 5
queue = ["Hwasa", "Solar", "Moonbyul", "Wheein", None]
front = -1
rear = 3
print(queue)
enQueue("Sunmi")
print(queue)
enQueue("Jaenam")
큐 Empty 상태를 확인하는 함수를 구현합니다
def isQueueEmpty() :
SIZE = 5
queue = [ None for _ in range(SIZE) ]
front = rear = -1
print("큐가 비었는지 여부 ==>", isQueueEmpty())
Implements a function to check if the queue is empty
def isQueueEmpty() :
SIZE = 5
queue = [ None for _ in range(SIZE) ]
front = rear = -1
print("Whether the queue is empty ==>", isQueueEmpty())
큐 Empty 확인 후 데이터를 dequeue합니다
def isQueueEmpty() :
def deQueue() :
SIZE = 5
queue = ["화사", None, None, None, None]
front = -1
rear = 0
print(queue)
retData = deQueue()
print("추출한 데이터 -->", retData)
print(queue)
retData = deQueue()
Dequeues data after checking if the queue is empty
def isQueueEmpty() :
def deQueue() :
SIZE = 5
queue = ["Hwasa", None, None, None, None]
front = -1
rear = 0
print(queue)
retData = deQueue()
print("Extracted data -->", retData)
print(queue)
retData = deQueue()
큐의 front 데이터를 확인하는 peek 함수를 구현합니다
def isQueueEmpty() :
def peek() :
SIZE = 5
queue = ["화사", "솔라", "문별", None, None]
front = -1
rear = 2
print(queue)
retData = peek()
print("다음에 추출될 데이터 확인 -->", retData)
print(queue)
Implements a peek function to check the front of the queue
def isQueueEmpty() :
def peek() :
SIZE = 5
queue = ["Hwasa", "Solar", "Moonbyul", None, None]
front = -1
rear = 2
print(queue)
retData = peek()
print("Check next data to be extracted -->", retData)
print(queue)
큐의 enqueue/dequeue/peek 통합 프로그램입니다
## 함수 선언 부분 ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## 전역 변수 선언 부분 ##
SIZE = int(input("큐의 크기를 입력하세요 ==> "))
queue = [ None for _ in range(SIZE) ]
front = rear = -1
## 메인 코드 부분 ##
Complete queue program with enqueue, dequeue, and peek
## Function Declarations ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## Global Variables ##
SIZE = int(input("Enter the queue size ==> "))
queue = [ None for _ in range(SIZE) ]
front = rear = -1
## Main Code ##
if __name__ == "__main__" :
select = input("Choose: Insert(I)/Extract(E)/Check(V)/Quit(X) ==> ")
while (select != 'X' and select != 'x') :
if select=='I' or select =='i' :
data = input("Data to input ==> ")
enQueue(data)
print("Queue status: ", queue)
elif select=='E' or select =='e' :
data = deQueue()
print("Extracted data ==> ", data)
print("Queue status: ", queue)
elif select=='V' or select =='v' :
data = peek()
print("Checked data ==> ", data)
print("Queue status: ", queue)
else :
print("Invalid input")
select = input("Choose: Insert(I)/Extract(E)/Check(V)/Quit(X) ==> ")
print("Program terminated!")
큐의 데이터 이동 방식을 개선합니다 (자리이동 큐)
def isQueueFull() :
SIZE = 5
queue = [None, None, "문별", "휘인", "선미"]
front = 1
rear = 4
print("큐가 꽉 찼는지 여부 ==>", isQueueFull())
print("큐 상태 ==> ", queue)
Improves queue by shifting data forward (shifting queue)
def isQueueFull() :
SIZE = 5
queue = [None, None, "Moonbyul", "Wheein", "Sunmi"]
front = 1
rear = 4
print("Whether the queue is full ==>", isQueueFull())
print("Queue status ==> ", queue)
자리이동 큐의 통합 프로그램입니다
## 함수 선언 부분 ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## 전역 변수 선언 부분 ##
SIZE = int(input("큐의 크기를 입력하세요 ==> "))
queue = [ None for _ in range(SIZE) ]
front = rear = -1
## 메인 코드 부분 ##
Complete shifting queue program
## Function Declarations ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## Global Variables ##
SIZE = int(input("Enter the queue size ==> "))
queue = [ None for _ in range(SIZE) ]
front = rear = -1
## Main Code ##
if __name__ == "__main__" :
select = input("Choose: Insert(I)/Extract(E)/Check(V)/Quit(X) ==> ")
while (select != 'X' and select != 'x') :
if select=='I' or select =='i' :
data = input("Data to input ==> ")
enQueue(data)
print("Queue status: ", queue)
elif select=='E' or select =='e' :
data = deQueue()
print("Extracted data ==> ", data)
print("Queue status: ", queue)
elif select=='V' or select =='v' :
data = peek()
print("Checked data ==> ", data)
print("Queue status: ", queue)
else :
print("Invalid input")
select = input("Choose: Insert(I)/Extract(E)/Check(V)/Quit(X) ==> ")
print("Program terminated!")
원형 큐를 구현합니다 (모듈러 연산 활용)
## 함수 선언 부분 ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## 전역 변수 선언 부분 ##
SIZE = int(input("큐의 크기를 입력하세요 ==> "))
queue = [ None for _ in range(SIZE) ]
front = rear = 0
## 메인 코드 부분 ##
Implements a circular queue using modular arithmetic
## Function Declarations ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## Global Variables ##
SIZE = int(input("Enter the queue size ==> "))
queue = [ None for _ in range(SIZE) ]
front = rear = 0
## Main Code ##
if __name__ == "__main__" :
select = input("Choose: Insert(I)/Extract(E)/Check(V)/Quit(X) ==> ")
while (select != 'X' and select != 'x') :
if select=='I' or select =='i' :
data = input("Data to input ==> ")
enQueue(data)
print("Queue status: ", queue)
print("front : ", front, ", rear : ", rear)
elif select=='E' or select =='e' :
data = deQueue()
print("Extracted data ==> ", data)
print("Queue status: ", queue)
print("front : ", front, ", rear : ", rear)
elif select=='V' or select =='v' :
data = peek()
print("Checked data ==> ", data)
print("Queue status: ", queue)
print("front : ", front, ", rear : ", rear)
else :
print("Invalid input")
select = input("Choose: Insert(I)/Extract(E)/Check(V)/Quit(X) ==> ")
print("Program terminated!")
큐 응용: 콜센터 대기열 시뮬레이션
## 함수 선언 부분 ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## 전역 변수 선언 부분 ## SIZE = 5 queue = [ None for _ in range(SIZE) ] front = rear = -1 ## 메인 코드 부분 ##
Queue application: call center waiting queue simulation
## Function Declarations ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
## Global Variables ##
SIZE = 5
queue = [ None for _ in range(SIZE) ]
front = rear = -1
## Main Code ##
if __name__ == "__main__" :
enQueue('Jungkook')
enQueue('V')
enQueue('Jimin')
enQueue('Jin')
enQueue('Suga')
print("Waiting line status: ", queue)
for _ in range(rear+1) :
print(deQueue(), ' enters the restaurant')
print("Waiting line status: ", queue)
print("Restaurant closed!")
원형 큐 응용: 핫도그 가게 시뮬레이션
## 함수 선언 부분 ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
def calcTime() :
## 전역 변수 선언 부분 ## SIZE = 6 queue = [ None for _ in range(SIZE) ] front = rear = 0 ## 메인 코드 부분 ##
Circular queue application: hot dog stand simulation
## Function Declarations ## def isQueueFull() :
def isQueueEmpty() :
def enQueue(data) :
def deQueue() :
def peek() :
def calcTime() :
## Global Variables ##
SIZE = 6
queue = [ None for _ in range(SIZE) ]
front = rear = 0
## Main Code ##
if __name__ == "__main__" :
waitCall = [('in use', 9), ('broken', 3), ('Refund', 4), ('Refund', 4), ('broken', 3)]
for call in waitCall :
print("Your estimated wait time is ", calcTime(), "minutes.")
print("Current waiting call --> ", queue)
enQueue(call)
print()
print("Final waiting call --> ", queue)
print("Program terminated!")
enQueue 함수를 직접 구현합니다
def enQueue(data) :
SIZE = 5
queue = ["화사", "솔라", "문별", "휘인", None]
front = -1
rear = 3
print(queue)
enQueue("선미")
print(queue)
enQueue("재남")Implements the enQueue function yourself
def enQueue(data) :
SIZE = 5
queue = ["Hwasa", "Solar", "Moonbyul", "Wheein", None]
front = -1
rear = 3
print(queue)
enQueue("Sunmi")
print(queue)
enQueue("Jaenam")deQueue 함수를 직접 구현합니다
def deQueue() :
SIZE = 5
queue = ["화사", None, None, None, None]
front = -1
rear = 0
print(queue)
retData = deQueue()
print("추출한 데이터 -->", retData)
print(queue)
retData = deQueue()Implements the deQueue function yourself
def deQueue() :
SIZE = 5
queue = ["Hwasa", None, None, None, None]
front = -1
rear = 0
print(queue)
retData = deQueue()
print("Extracted data -->", retData)
print(queue)
retData = deQueue()