Ⅰ 二叉樹的建立問題
你這是先序建立二叉樹。Q表示的是左或右孩子為空。。
Ⅱ 二叉樹建立問題
ch為字元串類型,'#'為字元類型當然不能比較了,
試試:ch=="#"
Ⅲ 二叉樹的創建問題
綠竹別其三分景 紅梅正報萬家春 橫批:春回大地
Ⅳ 二叉樹創建問題!
程序邏輯上有錯誤。
else{}裡面的代碼,生成根節點後,再調用create_btree();創建左子樹,調用create_btree()時再創建左子樹的根節點,然後再調用。就這樣一直循環下去。
輸入「#」的時候返回NULL,怎樣判斷這個NULL?如果生成的左子樹有節點右子樹沒有節點,怎樣判斷並返回上層節點?
你用筆按照你的程序寫一下生成二叉樹的過程就知道了。
Ⅳ 用C語言來建立二叉樹的遍歷出現的問題
經驗證,沒有出現你所說的問題。少了 #include<stdlib.h>
我把初始化函數改了:
Btree *CreateBtree()
{Btree *t,*p;
int i;
Datatype x;
Btree **seq;
seq=(Btree**)malloc(maxsize*sizeof(Btree*));
t=(Btree*)malloc(sizeof(Btree));
p=(Btree*)malloc(sizeof(Btree));
scanf("%d%c",&i,&x);
if(x!='@')
{
t->data=x;
t->lchild=NULL;
t->rchild=NULL;
}
else
return NULL;
seq[i]=t;
scanf("%d%c",&i,&x);
while(x!='@')
{
p->data=x;
t->lchild=NULL;
t->rchild=NULL;
seq[i]=p;
if(i%2==0)
seq[(i/2)]->lchild=p;
else
seq[(i/2)]->rchild=p;
scanf("%d%c",&i,&x);
}
return t;
}
Ⅵ 數據結構二叉樹的建立問題
*t=(BiTree)malloc(sizeof(BiNode));//分配內存有問題
應為:*t=(BiTree*)malloc(sizeof(BiNode *))
Ⅶ 關於二叉樹建立的一個問題~~~
代碼沒錯,只是輸出時不符合要求。
我修改了如下:
#include<stdio.h>
#define DEN sizeof(struct tree)
struct tree
{
struct tree * left;
struct tree * right;
int num;
};
int main()
{
struct tree * p2;
struct tree * treefoundation();
void treesearch();
p2=NULL;
p2=treefoundation();
treesearch(p2);
//printf("%d",p2->num);
getch();
return(0);
}
struct tree * treefoundation()
{
struct tree * p1;
int n;
printf("please input the current num of node!\n");
scanf("%d",&n);
if(n!=0)
{
p1=(struct tree *)malloc(DEN);
if(p1==NULL)
{
printf("the space is out!!\n");
return(0);
}
p1->num=n;
p1->left=treefoundation();
p1->right=treefoundation();
}
else
{
p1=NULL;
}
return(p1);
}
void treesearch(struct tree *p)
{
if(p==NULL)
return;
printf("%d\t",p->num);
treesearch(p->left);
treesearch(p->right);
}
運行後是正確的,圖貼不上來...
Ⅷ 關於創建二叉樹的問題
可以,其實在實現時一般是這樣做,先用變數存儲輸入的數,在創建節點,再把數存進節點
Ⅸ 關於數據結構中遞歸建立二叉樹時出現了問題
CreateBT(T->lchild);
CreateBT(T->rchild);
這兩句應該是
T->lchild=CreateBT();
T->rchild=CreateBT();
這樣吧
最後多輸入幾個空格試試看?就輸入部分來看,應該沒有很大的問題
Ⅹ Java建立二叉樹的問題
應該是類型不一致,你輸入的是string 而你的bitTree方法裡面的參數是TreeNode類型的