/*已知单向链表类linklist的部分代码如下,勿改动。请实现链表遍历函数display(输出链表中所有的数字字符,'0'~'9',其它字符不输出)。主函数的功能是:定义一个类对象A,输入任意个字符,以#结束,利用尾插入法将所有非#字符插入到链表中,并调用display实现链表遍历(只输出所有的数字字符)。
时间: 2024-02-28 10:55:55 浏览: 29
单向链表功能实现的源代码
4星 · 用户满意度95%
实现代码如下:
```c++
#include <iostream>
using namespace std;
class linklist {
private:
struct node {
char data;
node *next;
node(char d, node *n = NULL) : data(d), next(n) {}
};
node *head;
public:
linklist() : head(NULL) {}
~linklist() {
while (head != NULL) {
node *p = head;
head = head->next;
delete p;
}
}
void insert(char x) {
if (head == NULL) {
head = new node(x);
return;
}
node *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = new node(x);
}
void display() {
node *p = head;
while (p != NULL) {
if (p->data >= '0' && p->data <= '9') {
cout << p->data << " ";
}
p = p->next;
}
cout << endl;
}
};
int main() {
linklist A;
char ch;
cin >> ch;
while (ch != '#') {
if (ch >= '0' && ch <= '9') {
A.insert(ch);
}
cin >> ch;
}
A.display();
return 0;
}
```
主函数首先定义了一个链表对象 A。然后从标准输入读入字符 ch,如果 ch 是数字字符,则将其插入链表 A 中。当读到 # 字符时,停止读入,调用链表的 display 函数输出链表中所有的数字字符。
阅读全文