글 번호: 135 작성자: gihun 작성시간: 2023-10-25 02:47:40.437 조회수: 204

배열로 구현한 리스트 클래스


# 배열로 구현된 리스트 클래스 
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

🚩경기도, 성남시