今天做C++作業遇到一個問題,需要寫一個函數(在鏈表中添加新的節點)將結構體指針作爲形參,結果發現傳遞之後無法改變結構體的值,鏈表的長度還是沒變。通過查詢資料,發現把形參改爲對結構體指針的應用即可解決問題。
原代碼:
struct Tnode
{
string word;
int counts;
Tnode* left;
Tnode* right;
};
void insert_Tnode(struct Tnode *L,string str,int numbers)
{
struct Tnode *newd = new Tnode;//建立新節點
if(newd == NULL)
exit(1);
newd->word = str;
newd->counts = numbers;
L->right = newd;
newd->left = L;
newd->right = NULL;
L = newd;
}
運行後發現原來傳進來的L鏈表並沒有變化,對代碼進行修改如下即可。
將函數的聲明進行修改爲:
void insert_Tnode(struct Tnode *&L,string str,int numbers)
參考資料:http://bbs.csdn.net/topics/70168422