今天做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