나는 링크 된 목록의 개념을 이해하려고합니다. 내 질문에 대한 정보를 찾았지만 나에게 도움이 될 답변을 찾지 못했습니다. 연결된 목록이 정렬되어 있는지 확인하는 방법을 알고 싶습니다. 분명히 우리는 일반 목록처럼 단순한 두 줄 기능을 사용할 수 없습니다. 내 목록 (list.sort()
를 사용하지 않고) 정렬되어 있는지 확인하려면 예를 들어, 나는이 같은 함수를 만들 수 있습니다 : python : 연결된 목록이 정렬되어 있는지 확인하는 방법
def is_sorted(l):
return all(a <= b for a, b in zip(l[:-1], l[1:]))
그러나 링크 된 목록
, 나는 목록 꼬리와 머리 값을 비교해야합니까? 그것은 정확히 어떻게 작동합니까? 내가 링크 된 목록을 만드는 데 사용할제휴 : 이것은 LinkedList의는 파이썬의 목록 유형과 호환이 될 발생하지 않습니다 호출
class Node :
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
class LinkedList:
def __init__(self):
self.head = None
def add(self, data):
node = Node(data)
if self.head == None:
self.head = node
else:
node.next = self.head
node.next.prev = node
self.head = node
def search(self, k):
p = self.head
if p != None :
while p.next != None :
if (p.data == k) :
return p
p = p.next
if (p.data == k) :
return p
return None
def remove(self, p) :
tmp = p.prev
p.prev.next = p.next
p.prev = tmp
def __str__(self) :
s = ""
p = self.head
if p != None :
while p.next != None :
s += p.data
p = p.next
s += p.data
return s