Fix delete rear and front pointer when there is only one element left
This commit is contained in:
@@ -170,6 +170,9 @@
|
|||||||
(define (front-delete-deque! deque)
|
(define (front-delete-deque! deque)
|
||||||
(cond ((empty-deque? deque)
|
(cond ((empty-deque? deque)
|
||||||
(error "DELETE! called with an 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
|
(else
|
||||||
(set-front-ptr! deque (next-node (front-ptr deque)))
|
(set-front-ptr! deque (next-node (front-ptr deque)))
|
||||||
(set-prev-node! (front-ptr deque) '())
|
(set-prev-node! (front-ptr deque) '())
|
||||||
@@ -178,6 +181,9 @@
|
|||||||
(define (rear-delete-deque! deque)
|
(define (rear-delete-deque! deque)
|
||||||
(cond ((empty-deque? deque)
|
(cond ((empty-deque? deque)
|
||||||
(error "DELETE! called with an 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
|
(else
|
||||||
(set-rear-ptr! deque (prev-node (rear-ptr deque)))
|
(set-rear-ptr! deque (prev-node (rear-ptr deque)))
|
||||||
(set-next-node! (rear-ptr deque) '())
|
(set-next-node! (rear-ptr deque) '())
|
||||||
@@ -197,5 +203,7 @@
|
|||||||
(rear-delete-deque! d)
|
(rear-delete-deque! d)
|
||||||
(front-delete-deque! d)
|
(front-delete-deque! d)
|
||||||
(rear-delete-deque! d)
|
(rear-delete-deque! d)
|
||||||
|
(front-delete-deque! d)
|
||||||
|
(rear-delete-deque! d)
|
||||||
(display-deque d)
|
(display-deque d)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user