使用的是交换数据
方法一:表内排序
void SortByLink()
{
int n = m_list.GetCount(); //获取节点数
POSITION *ps = new POSITION[n+1]; //创建n+1个POSITOIN类型的数组
int i = 0; //表示第i个
POSITION p = m_list.GetHeaderPosition(); //获取头结点地址
while(p)
{
ps[i] = p; //将p地址赋值给ps[i]数组
m_list.GetNext(p); //获取下一个结点地址
i++;
}
Sort(ps,n);
}
void Sort(POSITION *ps,int n)
{
int i = 0;
int j,k;
while(i < n)
{
j = i+1;
k = i;
while(j < n)
{
if(m_list.GetAt(ps[j]).** < m_list.GetAt(k).** ) //比较大小
k = j;
j++;
}
if(i != k) //将数据进行交换
{
m_list.SetAt(p,struct DATA); //DATA是结构体
}
i++;
}
}