传统意义上的数组很难将不定数量的单词进行排序,主要因为数组多是静态分配,如果想动态分配,需要用到顺序表或者链表的的知识。
下面就为大家献上c++用链表排序英文单词的算法。
#include <iostream>
#include <cstring>
using namespace std;
class node{
public:
string word;
unsigned long x;
node *next;
};
class sequence{
private:
node *head;
node *temp;
int count;
public:
sequence():head(NULL),temp(NULL),count(0){}
node *create_sequence();
node *do_sequence();
void get_word();
~sequence();
};
node *sequence::create_sequence()
{
head = temp = new node;
head->next = temp->next = NULL;
node *p = NULL;
string s = "aa";
cout<<"请输入你想要排序的英文单词,输入#结束:"<<endl;
while(s != "#")
{
cin>>s;
p = new node;
p->next = NULL;
p->word = s;
p->x = strlen(s.c_str());
temp->next