2013-05-10 86 views
1

我正試圖編寫一段代碼來顯示整數,因爲它們被加載到二叉樹中。到目前爲止,我寫了這個:打印avl樹的左值和右值

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", t->num, t->left->data, t->data, t-> right -> data);  
    t = insert(j, a[j], t); 


} 

程序仍保持,雖然崩潰。我該如何解決這個問題?我是否以這種錯誤的方式去做?

編輯:我解決了這一問題在之前的評論

+0

'左 - > right'是指向一個節點不是'你的樹的int'領域。 – ouah 2013-05-10 09:27:04

+0

您是否嘗試過傳遞'int'而不是'struct node *'? – 2013-05-10 09:27:09

+0

謝謝,它現在編譯,但程序不斷崩潰。我是否以這種錯誤的方式去做? – user1816546 2013-05-10 09:28:17

回答

2
printf ("%5d %5d %5d %5d", t->num, t->left->data, t->data, t-> left ->right); 

指出------------------------- -------------------------------------------------- ---------------------^

你的意思是t->right->data

+0

是的,我現在修正了...程序仍然崩潰 – user1816546 2013-05-10 09:30:13

+1

似乎失敗了,因爲't'使用了單位化,嘗試打印值afert插入 – 2013-05-10 09:36:01

+0

我試過了,仍然不斷崩潰...我是否打印這些錯誤的方式? – user1816546 2013-05-10 09:42:55

1

鑑於如何爲您打印t->left->data,我猜你想要t->right->data而不是t-> left ->right

如果你要打印的指針,投t-> left ->rightintunsigned int會更好)