我需要帮助将数据从类节点插入到链表中。List 是节点的容器。它们需要根据姓氏、名字和年龄进行排序。(我已经有运算符函数来比较它们)我只是不确定如何使用指针来插入和排序它们。下面是我的两个类定义,以及到目前为止我的插入函数。我还从以前的项目中提供了一个潜在的选择排序算法,可以用来处理这个问题。任何人都可以帮忙吗?
//类声明
class node;
class list
{
public:
void insert(string f, string l, int a);
int length();
private:
node *head;
int listlength;
};
class node
{
friend list;
public:
node(); // Null constructor
~node(); // Destructor
void put(ostream &out); // Put
bool operator == (const node &); // Equal
bool operator < (const node &); // Less than
private:
string first, last;
int age;
node *next;
};
//如何在MAIN中调用insert
while (!infile.eof())
{
infile >> first >> last >> age;
// Process if okay
if (infile.good())
a.insert(first, last, age);
};
//插入函数
void list::insert(string f, string l, int a)
{
node *temp1, *temp2 = head;
temp1 = new node();
temp1->first = f;
temp1->last = l;
temp1->age = a;
temp1->next = NULL;
if (listlength == 0)
{
temp1->next = head;
}
else
while (temp2->next != NULL)
{
;
}
}
//潜在排序算法
void sort(person b[], int count)
{
int i = 0, j = 0, indexofsmallest = i;
person smallest = b[i];
for (i = 0; i < count; i++)
{
smallest = b[i];
indexofsmallest = i;
for (j = i+1; j < count; j++)
{
if (b[j] < smallest)
{
smallest = b[j];
indexofsmallest = j;
}
}
//cstdlib swap function
swap(b[i], b[indexofsmallest]);
}
}