From d1c5b4bcb175e5e9d485fae2fc4479162f238249 Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Mon, 21 Dec 2020 15:16:32 -0500 Subject: [PATCH] Fix delete rear and front pointer when there is only one element left --- ex-3_21-23.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ex-3_21-23.scm b/ex-3_21-23.scm index 4184121..1491a3b 100644 --- a/ex-3_21-23.scm +++ b/ex-3_21-23.scm @@ -170,6 +170,9 @@ (define (front-delete-deque! deque) (cond ((empty-deque? deque) (error "DELETE! called with an empty deque" deque)) + ((null? (next-node (front-ptr deque))) + (set-front-ptr! deque '()) + (set-rear-ptr! deque '())) (else (set-front-ptr! deque (next-node (front-ptr deque))) (set-prev-node! (front-ptr deque) '()) @@ -178,6 +181,9 @@ (define (rear-delete-deque! deque) (cond ((empty-deque? deque) (error "DELETE! called with an empty deque" deque)) + ((null? (prev-node (rear-ptr deque))) + (set-front-ptr! deque '()) + (set-rear-ptr! deque '())) (else (set-rear-ptr! deque (prev-node (rear-ptr deque))) (set-next-node! (rear-ptr deque) '()) @@ -197,5 +203,7 @@ (rear-delete-deque! d) (front-delete-deque! d) (rear-delete-deque! d) +(front-delete-deque! d) +(rear-delete-deque! d) (display-deque d)