c語言,先序建樹。在while p NULL 處好像迴圈次數太多了,st陣列訪問越界。肯定是建樹不成功,誰給我改改

2022-09-13 03:10:16 字數 953 閱讀 2665

1樓:創作者

#include

#include

#define len sizeof(struct bitnode)

int i=0;

struct bitnode

;struct bitnode *createtree(struct bitnode *t,char s)

}else t=null;

return t;

}int main()

;int top=-1;

t=createtree(t,s);

if(t!=null)

if(top>-1)}}

printf("ok!");

system("pause");

}因為沒把t返回,所以程式訪問錯誤記憶體,所以程式崩潰。如果你問

struct bitnode *createtree(struct bitnode *t,char s)

struct bitnode *t不是傳地址呼叫嗎,那樓主要重新學習下函式呼叫了。

可以執行了,但是這麼寫程式

t->data=ch;

t->lchild=createtree(t->lchild,s);

t->rchild=createtree(t->rchild,s);

的話,就永遠只有 t->lchild=createtree(t->lchild,s);有值,這種情況應該不是樓主願意看到的吧。

2樓:匿名使用者

createtree這個函式遞迴有點問題改成我這樣的就行了struct bitnode *createtree(struct bitnode *t,char s)

else

}return t;

}還有要改的地方是

createtree(t,s);改成t=createtree(t,s);

執行通過!

c語言和c先學哪個好,C語言和c 先學哪個好?

c語言和c 當然是先學c語言比較好,c語言一般認為是程式設計新手最好初次程式設計接觸的語言了,其中的語法和一些思想對其它語言都有一定的影響。有了c語言,其它語言問題應該都不會太大的。c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器...

c語言先怎麼學習呢

從最簡單學習 多聯絡 多找些具體例子 常見演算法必須記住 等。多寫 會背 最後轉化為自己東西 時間長了 就會由生疏到熟悉 由想不出來怎麼寫,慢慢會一點點寫出來 先看書,用譚浩強的那個 c語言程式設計 每個程式看懂,習題都自己寫一下,編寫程式,格式不能少,多抄多寫,最好在在電腦上執行 跟你說,找譚浩強...

C語言先加運算子問題

同意上邊的兄弟所說 對於lz這個題,實在沒有討論的價值,因為不同的編譯器實現的運算級和左右順序可能會不一樣,這樣寫不具有良好的移植性,也不具有可讀性,是初學者的大忌。這麼做,只在賣弄或者某些極其特殊的場合才有用 例如要求編譯後檔案大小 極其強調效能等 因此建議lz還是以鍛鍊好紮實的基本功為優先。保證...