编写简单的C++程序建立一个单向链表。链表结点中的数据为从键盘输入的一个字符串,但要求将该串字符按由小到大的顺序组织在链表中。
时间: 2024-02-12 13:08:59 浏览: 61
用C++实现单向链表
4星 · 用户满意度95%
好的,我可以为您编写这个程序。以下是代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
struct Node {
string data;
Node* next;
};
void insert(Node* &head, string s) {
Node* newNode = new Node;
newNode->data = s;
newNode->next = NULL;
if (head == NULL || head->data > s) {
newNode->next = head;
head = newNode;
} else {
Node* curr = head;
while (curr->next != NULL && curr->next->data < s) {
curr = curr->next;
}
newNode->next = curr->next;
curr->next = newNode;
}
}
void display(Node* head) {
Node* curr = head;
while (curr != NULL) {
cout << curr->data << " ";
curr = curr->next;
}
}
int main() {
Node* head = NULL;
string s;
cout << "Enter strings (end with -1): ";
cin >> s;
while (s != "-1") {
insert(head, s);
cin >> s;
}
cout << "Sorted list: ";
display(head);
return 0;
}
```
这个程序使用了单向链表来存储输入的字符串,并将它们按照由小到大的顺序排列。`insert`函数用于在合适的位置插入新的结点,`display`函数用于打印链表中的所有数据。在`main`函数中,我们首先创建一个空链表,然后从键盘读取输入的字符串,直到输入“-1”。最后,我们打印排序后的链表。
阅读全文