2013-08-26 2 views
0

python 3.3에서 생성자 매개 변수없이 LinkedList를 생성하는 데 도움이 필요합니다. 결과적으로 빈 LinkedList 객체가됩니다. 목록의 앞과 끝에 요소를 추가하고 제거 할 수 있기를 원합니다. 지금까지 나는 앞에 붙이고 추가 할 수 있습니다. 나는 그 밖의 모든 것들이 어떻게 작동하는지에 관해서는 조금 아프다.연결된 목록 및 조작

class Node: 
    def __init__(self, d, n): 
     self.data = d 
     self.next = n 


class LinkedList: 
    def __init__(self): 
     self._head = None 
     self._size = 0 

    def __len__(self): 
     return self._size 

    def append(self, item): 
     pass 

    def prepend(self, item): 
     self._head = Node(item, self._head) 
     self._size += 1 

    def remove_first(self): 
     pass 

    def remove_last(self): 
     pass 

누군가가 단서가 있습니까 : 여기에 지금까지 가지고 무엇인가? 무리 감사!

+0

그럼 왜 당신이 먼저 스스로 그것을 시도하고 볼 수 없습니다, 아주 간단합니다 : 타 방법으로

, 당신은리스트의 마지막 노드에 대한 참조로 LinkedList의 클래스를 수정할 수 있습니다 당신이 이해하기 어려운 부분은 무엇입니까? – badc0re

답변

0

표준 라이브러리의 collections 모듈에서 deque 개체를 사용할 수 있습니다. prepend 메소드는 deque 객체에서 appendLeft라고합니다.

class LinkedList: 
    def __init__(self): 
     self._head = None 
     self._tail = None 
     self._size = 0 

    def append(self, item): 
     if self._tail is None: 
      self.prepend(item) 
     else: 
      self._tail.next = Node(item, None) 
      self._tail = self._tail.next 

    def prepend(self, item): 
     if self._head is None: 
      self._tail = Node(item, None) 
      self._head = self._tail 
     else: 
      self._head = Node(item, self._head) 
     self._size += 1 
+0

흠, deque 오브젝트를 사용할 필요가없는 방법이 있습니까? 그것을 사용하지 않는 것이 훨씬 선호됩니다. 내 자신의 링크 된 데이터 구조를 만드는 방법을 배우고 싶습니다. :) – user2559679

+0

물론, LinkedList 객체의 마지막 노드에 대한 참조를 추가해야합니다. – jorispilot

+0

아, 알겠습니다. 내가 참조. 고맙습니다! – user2559679