【发布时间】:2016-06-18 20:33:02
【问题描述】:
所以,我正在处理这个链表作业,非常感谢打印出链表元素的一些帮助。 到目前为止,我已经使用一个数组来定义链表的值,但是每当我尝试使用单独的打印函数打印头部值时,它总是出现 NULL。现在我认为这可能与一些全球与本地问题有关,但我不确定。如果是范围问题,那么将不胜感激有关如何全局定义链表值的一些建议。
下面是我的打印功能和构建功能的代码。我现在要做的就是从 print 函数中打印出 build 函数中定义的 head 值。 head 值似乎通过 build 函数保持一致,但是一旦我执行 print 函数,它就会变为 NULL。 有什么想法吗?
void CommunicationNetwork::buildNetwork(){
std::string a[10] = {"Los Angeles","Phoenix", "Denver", "Dallas","St. Louis", "Chicago", "Atlanta", "Washington, D.C.", "New York", "Boston"};
City *head = new City;
head ->cityName=a[0];
head ->next = NULL;
City *current = head;
int i =1;
while(i<10){
City *tmp = new City;
tmp ->cityName = a[i];
tmp ->next = NULL;
current ->next = tmp;
current = current->next;
i++;
}
City *tail = current;
City *tmp2 = new City;
tmp2 = head;
current = tmp2;
//cout<<"head = "<<head->cityName<<endl;
while(current != NULL){
cout<<current->cityName<<" -> ";
current = current->next;
}
if(current == NULL){
cout<<"NULL"<<endl;
}
cout<<head->cityName<<endl;
}
void CommunicationNetwork::printNetwork(){
cout<<"===Current Path==="<<endl;
cout<<head->cityName<<endl;
cout<<"=================="<<endl;
}
【问题讨论】:
-
您应该在运算符周围放置空格,例如
"cout << current->cityName << " -> "; -
当您使用调试器并单步执行每个语句时,哪个语句导致了问题?
-
一切都在运行,但我的 printNetwork() 函数在应该输出“Los Angeles”时打印 NULL
标签: c++ printing linked-list