단순연결리스트에서 삭제한 노드의 위치 반환(수정)
조회수 1881회
여기서 삭제한 노드의 위치 반환하려면 어떻게 수정해야 하나요?
class SinglyList:
class Node:
def __init__(self, data, link): #### 노드 생성
self.data = data
self.next = link
def __init__(self): #### 단순연결리스트 생성자
self.head = None
self.size = 0
def size(self): return self.size
def Empty(self):return self.size == 0
def insert_front(self, data): #### 첫번째 노드로 삽입
try:
if self.Empty():
self.head = self.Node(data, None)
print("%s가 첫번째 노드로 삽입되었습니다." %data)
else:
self.head = self.Node(data, self.head)
print("%s가 첫번째 노드로 삽입되었습니다." %data)
self.size += 1
except:
print("값을 잘못 입력하였습니다.")
def insert_after(self, data, p): #### p 다음에 삽입
try:
p.next = SinglyList.Node(data, p.next)
self.size += 1
except:
print("값을 잘못 입력하였습니다.")
def delete_front(self): #### 첫번째 노드 삭제
try:
if self.Empty():
raise EmptyError("underflow")
else:
self.head = self.head.next
self.size -= 1
except:
print("값을 잘못 입력하였습니다.")
def delete_after(self, p): #### p 다음 노드 삭제
try:
if self.Empty():
raise EmptyError("underflow")
t = p.next
p.next = t.next
self.size -= 1
except:
print("값을 잘못 입력하였습니다.")
def search(self, target): #### target 탐색
try:
p = self.head
for k in range(self.size):
if target == p.data:
print(target, "데이터는",k,"번째에 있습니다.")
return k
p = p.next
print(target, "데이터는 리스트에 없습니다.")
except:
print("값을 잘못 입력하였습니다.")
return None
def get(self): #### 연결리스트 출력
try:
if self.size == 0:
print("리스트가 비었습니다.")
else:
p = self.head
while p:
if p.next != None:
print(p.data, ' -> ', end='')
else:
print(p.data)
p = p.next
except:
print("값을 잘못 입력하였습니다.")
def isEmpty(self): #### 리스트가 비어있는지 확인
if self.size == 0:
print("리스트가 비었습니다.")
else:
print("리스트가 비어있지 않습니다.")
class EmptyError(Exception): #### 값 오류의 에러 처리
pass
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
각각 값들을 리턴 해 주면 되는거 아닌가요?? ㅎㅎ
의도가 맞는지는 조금 의문입니다.
def delete_front(self): #### 첫번째 노드 삭제 try: if self.Empty(): raise EmptyError("underflow") else: self.head = self.head.next self.size -= 1 # 추가 return self.head except: print("값을 잘못 입력하였습니다.") # 추가 return None def delete_after(self, p): #### p 다음 노드 삭제 try: if self.Empty(): raise EmptyError("underflow") t = p.next p.next = t.next self.size -= 1 # 추가 return p.next except: print("값을 잘못 입력하였습니다.") # 추가 return None
댓글 입력