# 배열로 구현된 리스트 클래스
class ArrayList:
def __init__(self, capacity=100):
self.capacity = capacity
self.array = [None] * self.capacity
self.size = 0
# 리스트의 연산 : 클래스의 메서드로 구현
def isEmpty(self):
return self.size == 0
def isFull(self):
return self.size == self.capacity
def getEntry(self, pos):
return self.array[pos] if 0 <= pos < self.size else None
def insert(self, pos, e):
# 리스트가 가득 차지 않았고, pos가 리스트의 범위 내에 있는 경우
if not self.isFull() and 0 <= pos <= self.size:
# 리스트의 끝에서부터 pos까지의 원소를 한 칸씩 뒤로 이동
for i in range(self.size, pos, -1):
self.array[i] = self.array[i-1]
# pos 위치에 e를 삽입하고, 리스트의 크기를 1 증가시킴
self.array[pos] = e
self.size += 1
else:
pass
def delete(self, pos):
# 리스트가 비어있지 않고, pos가 리스트의 범위 내에 있는 경우
if not self.isEmpty() and 0 <= pos < self.size:
# pos 위치에 있는 원소를 삭제하고, 리스트의 끝에서부터 pos까지의 원소를 한 칸씩 앞으로 이동
e = self.array[pos]
for i in range(pos, self.size-1):
self.array[i] = self.array[i+1]
# 리스트의 크기를 1 감소시키고, 삭제한 원소를 반환함
self.size -= 1
return e
else:
pass
def __str__(self):
# 리스트의 크기만큼만 출력함
return str(self.array[:self.size])
# 리스트 클래스의 사용
L = ArrayList(50)
print("최초 : ",L)
for i in range(10):
L.insert(i, i+1)
print("삽입 : ",L)
for i in range(5):
L.delete(0)
print("삭제 : ",L)
Created by 송바래
✉ gihun3645@naver.com
🚩경기도, 성남시