avl-tree

    30熱度

    1回答

    所以我自我教學AVL樹,我明白它背後的基本理念,但我只是想確保我的實際執行是有效的直覺: 我會用左手rotation-檢查它 所以,下面的情況很簡單: 8 /\ 7 10 / 6 / 3 當我們添加3,樹重新平衡自身: 8 /\ 6 10 /\ 3 7 但是是基於3的加法或基於7的子樹的不平衡?它甚至是基於植根於8的樹的不平衡? 下面的例子

    1熱度

    2回答

    我已經在C#中編寫了用於實現AVL_trees的代碼。我遇到了一些節點問題,這就是爲什麼我無法在節點中插入數據的原因。以下是我的代碼。 public class avl_node { public int Data; public avl_node Left; public avl_node Right; public int height;

    0熱度

    1回答

    我正在C中實現AVL樹。我已經發布了我的樹輪旋轉以及我在嘗試測試時遇到的valgrind錯誤。 爲什麼我會收到這些錯誤?我明白,valgrind錯誤源於我使用空指針的事實,但我無法準確指出我做錯了什麼。 (我已經談到了在Valgrind的錯誤線) Tree rotateRight(Tree t) { Tree temp = t->L; t->L=temp->R; t

    1熱度

    2回答

    我正試圖編寫一段代碼來顯示整數,因爲它們被加載到二叉樹中。到目前爲止,我寫了這個: node*t; t = NULL; for(j = 0; j < 33; j++) { printf ("Table %d \n", j+1); printf ("LineNum Left Data Right\n"); printf ("%5d %5d %5d %5d",

    0熱度

    1回答

    是否可以打印節點數組?我需要顯示正在構建的AVL樹,但每當我運行此代碼時,程序都會崩潰。任何替代方法呢? int k = 0; t = NULL; node* nodearray[32]; for(j = 0; j < 33; j++) { printf ("Table %d \n", j+1); printf ("LineNum

    0熱度

    1回答

    我必須維護公司的員工結構。每個員工都有一個唯一的名字(沒有兩個同名)和一個級別(整數)。該級別表示該人在層次結構中的位置。 1級=最高(只有1名員工可以在1級,但是i> 1級可能有多名員工)。我的每一級員工都是一名I-1級員工,他/她的直屬上司。現在,鑑於任何員工都說A,員工A',A''......這樣A在A'下工作,A'在A'下工作等等。我需要創建一個合適的樹結構。 我需要實現以下方法: add

    3熱度

    4回答

    我正在尋找一個Voronoi鑲嵌算法(Fortune算法;一個不重要的任務本身,methinks)的二叉搜索樹,所以當然,我想我會有一個看看Boost。 Boost擁有Intrusive頭文件,它似乎包含豐富的BST(如AVL,Splay樹和替罪羊樹 - 哈哈,我必須確保那個名字!)一見鍾情正是我所需要的。 1:我錯過了什麼,或者有沒有辦法直接訪問樹的根節點? 2: AVL樹是否適用於Fortun

    0熱度

    1回答

    我正在爲AVL樹做介紹,無法理解什麼是平衡因子。 請給我鏈接或任何可以用圖形方式理解AVL樹高度效果的東西

    1熱度

    1回答

    在閱讀了AVL樹之後,我無法從頭腦中獲得一個問題。 如果我們有一個排序的數字列表,例如[1,2,3,4,5],我們將它們插入AVL樹中,樹不會因爲它會走1-2-3-4-5而停滯不前(即它們都將成爲正確的孩子)。 我問這個,因爲我知道,在AVL樹對於T的每一個內部節點V,V'的孩子們的高度可以至多1 不同,但是,如果我們只有1個孩子每節點,我們如何做這個比較?