xanadu - btree
This commit is contained in:
		
							parent
							
								
									7c689a82e7
								
							
						
					
					
						commit
						91a23b4d17
					
				| 
						 | 
				
			
			@ -26,12 +26,18 @@
 | 
			
		|||
;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 | 
			
		||||
;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
(define (make-b-tree-node left right)
 | 
			
		||||
(define (make-b-tree-node l r)
 | 
			
		||||
  (let ((numitems 0)
 | 
			
		||||
        (numnodes 0)
 | 
			
		||||
        (root 'foo)
 | 
			
		||||
        (left left)
 | 
			
		||||
        (right right))
 | 
			
		||||
        (left l)
 | 
			
		||||
        (right r))
 | 
			
		||||
 | 
			
		||||
    (define (get-left)
 | 
			
		||||
      left)
 | 
			
		||||
 | 
			
		||||
    (define (get-right)
 | 
			
		||||
      right)
 | 
			
		||||
 | 
			
		||||
    (define (get-root)
 | 
			
		||||
      root)
 | 
			
		||||
| 
						 | 
				
			
			@ -57,8 +63,8 @@
 | 
			
		|||
              (else (display "b-tree-node : message not understood")))))
 | 
			
		||||
     dispatch))
 | 
			
		||||
 | 
			
		||||
(define (make-b-tree n-ary)
 | 
			
		||||
  (let ((*tree (make-vector n-ary)))
 | 
			
		||||
(define (make-b-tree n-ary);;NOTE FIXME n-ary and vector-length
 | 
			
		||||
  (let ((*tree (make-vector n-ary (make-b-tree-node (make-vector n-ary) (make-vector n-ary)))))
 | 
			
		||||
 | 
			
		||||
    (define (vector-median v)
 | 
			
		||||
      (let ((len (ceiling (/ (vector-length v) 2))))
 | 
			
		||||
| 
						 | 
				
			
			@ -89,8 +95,6 @@
 | 
			
		|||
                        (vector-set! tree i new-node)
 | 
			
		||||
                      ;;(grow-down (vector-ref tree i)
 | 
			
		||||
                      )))
 | 
			
		||||
                   ((string>=? str (vector-ref tree i))
 | 
			
		||||
                    (grow-down))
 | 
			
		||||
                   ((string=? str (vector-ref tree i))
 | 
			
		||||
                    (set! i (vector-length tree)))
 | 
			
		||||
                   (else (display "never reached."))))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue