2013-01-13 5 views
-4

으로 목록을 정렬는 "이전"과는 연결 "후"구성되는 다른 객체 인스턴스를 가리 키기 위해.고려 다음 클래스 정의를 이름

Frobs를 사용하여 이중 연결 목록이라는 데이터 구조를 만들 수 있습니다. 이중 링크 목록에서 각 요소는 요소 A가 요소 B에 대한 "이전"링크를 갖고 있으면 요소 B에 요소 A에 대한 "후"링크가있는 속성을 갖습니다. Frob 인스턴스의 이중 연결 모음을 만들고 싶습니다. 특정 Frob의 이름 앞에 알파벳순으로 이름이있는 모든 Frobs가 "이전"링크를 따라 정렬 된 것으로 나타나고 특정 Frob의 이름 다음에 알파벳순으로 이름이있는 모든 Frobs가 "after"링크를 따라 정렬 된 것으로 표시됩니다.

Frob가 기존 Frob와 동일한 이름으로 삽입되는 경우 두 가지 이름을 최종 데이터 구조에 삽입해야합니다 (두 개의 동일한 Frob의 정확한 순서는 중요하지 않음).

정렬 된 이중 연결 목록을 만들 삽입 기능에 대한 정의를 제공하십시오. 이 함수는 Frob 클래스 외부에서 정의되며 두 개의 인수 (현재 이중 연결리스트의 일부인 Frob 및 새 Frob)를 사용합니다. 새 Frob에는 처음에는 다른 Frobs에 대한 "이전"또는 "이후"링크가 없습니다. 함수는 새로운 Frob를 올바른 위치에 배치하기 위해리스트를 변경해야하며 결과 이중 링크 목록에는 적절한 "이전"및 "이후"링크가 있어야합니다. 다음 함수 정의를 완성하십시오.

이것은 코드 작성을 시도한 것이지만 잘못되었습니다. 코드 작성을 도와주세요. 나는 많은 시간 동안 그것에 붙어 있었다.

def insert(atMe, newFrob): 
    """ 
    atMe: a Frob that is part of a doubly linked list 
    newFrob: a Frob with no links  
    This procedure appropriately inserts newFrob into the linked list that atMe is a part of.  
""" 
    # My Code 
    nodes = [] 
    if atMe in nodes: 
     nodes.append(newFrob) 
     nodes.sort() 
    else: 
     nodes.append(atMe) 
     nodes.append(newFrob) 
     nodes.sort() 
+1

숙제와 같은 소리가납니다 ... – robertklep

+2

이것은 두 번째 질문이며 첫 번째 질문과 마찬가지로 과제의 복사하여 붙여 넣기입니다. 다시 한번, [ask]를 참조하십시오. 귀하가 시도한 것과 귀하의 특정 문제가 무엇인지를 보여주기 위해 질문을 편집하십시오. 'Ctrl + V '는 숙제를 끝내기에 충분하지 않습니다. –

+0

귀하의 수정에도 불구하고 질문이 종료되었습니다. 추가로 개선하면 다시 열 수 있습니다. –

답변

1

좋아요, 당신이 과제의 텍스트 이상으로 뭔가를 제공 했으므로 몇 가지 힌트를 드리겠습니다. (이리스트의 단부 중 하나를 할 필요가있는 경우 나)

  1. newFrob가 삽입되는 사이에 두 Frob 객체를 식별 :

    insert 함수는 2 일을 갖는다. 할당이 목록이 알파벳순으로 정렬되어야한다고 지정하므로 객체의 name 속성을 비교하여 수행됩니다. 상식적으로는 이것을 수행하기 위해 어떤 종류의 루프 (링크 된리스트를 통해)를 조합해야하며, 그 루프 내에서 현재 오브젝트와 새 오브젝트의 이름과 관련된 일부 조건을 점검해야한다고 제안합니다.

  2. 새 개체를 삽입하십시오. 이는 beforeafter 속성과 새 이웃의 속성을 지정하여 수행됩니다. 이것은 setBefore과 같은 메소드를 사용하여 수행 할 수 있습니다.

P. 설명을 요청하기 위해 내 대답에 대해 의견을 말할 수 있으며, 진행 상황 (있는 경우) 및 발생한 문제에 대한 세부 정보로 질문을 업데이트 할 수도 있습니다.