10.4 读下面的链表操作程序。 (1)将函数ShowList()和AddToEnd()改成非递归形式(可以修改函数原型)。 #include<iostream> using namespace std; struct Lnode { double data; Lnode *next; } ; void ShowList(Lnode*list) { if(list) { cout<<list->data <<endl; if(list->next) ShowList(list->next); //递归调用 mysql } void AddToEnd(Lnode*new, Lnode *head) 1 if(head==NULL) { head=newl; newi->next=NULL;}
时间: 2024-01-26 20:02:56 浏览: 88
利用链表操作成员函数insertlist,deletelist.outputlist,形成以下的简单链表操作程序。
修改后的ShowList()函数和AddToEnd()函数的代码如下:
```c++
void ShowList(Lnode* list) {
Lnode* cur = list;
while (cur) {
cout << cur->data << endl;
cur = cur->next;
}
}
void AddToEnd(Lnode* new_node, Lnode* head) {
if (head == NULL) {
head = new_node;
new_node->next = NULL;
} else {
Lnode* cur = head;
while (cur->next) {
cur = cur->next;
}
cur->next = new_node;
new_node->next = NULL;
}
}
```
这样修改后,ShowList()函数和AddToEnd()函数都变成了非递归形式,不会再使用递归调用。ShowList()函数使用while循环遍历整个链表,逐个输出节点的数据;AddToEnd()函数也使用while循环找到链表的尾部,然后将新节点加入到链表的末尾。
阅读全文