C에서 단일 링크 된 목록의 첫 번째 요소와 마지막 요소를 가리키는 포인터를 사용하여 목록의 끝까지 일정 시간 액세스 할 수 있습니다. 따라서 한 목록을 다른 목록에 추가하는 작업은 일정 시간 내에 수행 될 수 있습니다.스키마 : 목록의 끝까지의 지속적인 액세스?
제가 알고있는 한, scheme은 기본적으로이 기능 (즉, 목록의 끝까지의 지속적인 액세스)을 제공하지 않습니다. 명확히 말하면, 나는 "포인터"기능을 찾고 있지 않다. 나는 이것이 체계에서 비 관용적이며 (필자가 생각하기에) 불필요하다고 생각합니다.
누군가가 1) 일정 시간에 두 목록을 추가 할 수있는 방법을 제공하는 능력을 보여줄 수 있습니까? 아니면 2) 이것이 스킴이나 라켓에서 기본적으로 사용 가능하다는 것을 보증 할 수 있습니까 (예 : append
는 실제로 내가 틀린 생각을 잘못하면 일정한 작동)?
편집 : 내가 더 분명하게해야합니다. inspectable 대기열을 만들려고합니다. 내가 할 수있는 목록을 갖고 싶다. 1) 상수 시간에 앞쪽으로 밀고, 2) 일정한 시간에 뒤에서 튀어 나오며, 3) 라켓의 foldr
또는 이와 유사한 것을 사용한다. (Lisp 오른쪽 접기).
덧붙여서 : 라켓에는 이미 큐 구조가 있습니다. http://docs.racket-lang.org/data/Imperative_Queues.html – dyoo