Пример #1
0
void TestList()
{
	List<int> l1;
	l1.PushBack(1);
	l1.PushBack(2);
	l1.PushBack(3);
	l1.PushBack(4);
	l1.PushBack(5);
	l1.PushBack(6);
	l1.PushBack(7);
	l1.PushBack(8);
	PrintList1(l1);

	// 迭代器失效
	List<int>::Iterator it = l1.Begin();
	while(it != l1.End())
	{
		if ((*it) == 0)
			it = l1.Erase(it);
		else
			++it;
	}
	PrintList2(l1);	
	PrintList3(l1);
}
Пример #2
0
void RadixSort(SList *L)
	/*对L进行基数排序,使得L成为按关键字非递减的静态链表,L.r[0]为头结点*/
{ 
	int i;
	addr f,r;
	for(i=0;i<(*L).keynum;i++)			/*由低位到高位依次对各关键字进行分配和收集*/
	{				
		Distribute((*L).data,i,f,r);	/*第i趟分配*/
		Collect((*L).data,f,r);			/*第i趟收集*/
		printf("第%d趟收集后:",i+1);
		PrintList2(*L);
	}
}
Пример #3
0
void main()
{
	DataType d[N]={268,126,63,730,587,184};
	SList L;
	InitList(&L,d,N);
	printf("待排序元素个数是%d个,关键字个数为%d个\n",L.length,L.keynum);
	printf("排序前的元素:\n");
	PrintList2(L);
	printf("排序前的元素的存放位置:\n");
	PrintList(L);
	RadixSort(&L);
	printf("排序后元素的存放位置:\n");
	PrintList(L);
	system("pause");
}