exam2-4-1.cpp

来自「数据结构(李春葆)书中第二章链表运算的所有源代码。包括链表的各种基本运算」· C++ 代码 · 共 42 行

CPP
42
字号
#include "sqlist.cpp"   /*这里将整数用字符型表示*/
void move1(SqList *&L)
{
	int i=0,j=L->length-1;
	ElemType pivot=L->data[0];	/*以data[0]为基准*/
	ElemType tmp;
	while (i!=j)  			/*从区间两端交替向中间扫描,直至i=j为止*/
	{	
		while (j>i && L->data[j]>pivot) 
			j--;  			/*从右向左扫描,找第1个小于pivot的元素*/
		while (i<j && L->data[i]<pivot) 
			i++;			/*从左向右扫描,找第1个大于pivot的元素*/
		if (i<=j)			/*L->data[i]和L->data[j]进行交换*/
		{
			tmp=L->data[i];
			L->data[i]=L->data[j];
			L->data[j]=tmp;
		}
	}
}
void main()
{
	SqList *L;
	InitList(L);
	/*构造L={'3','5','6',1','4','2','7','9','8','0'}*/
	ListInsert(L,1,'3');
	ListInsert(L,2,'5');
	ListInsert(L,3,'6');
	ListInsert(L,4,'1');
	ListInsert(L,5,'4');
	ListInsert(L,6,'2');
	ListInsert(L,7,'7');
	ListInsert(L,8,'9');
	ListInsert(L,9,'8');
	ListInsert(L,10,'0');
	printf("L:");DispList(L);
	printf("执行移动运算\n");
	move1(L);
	printf("L:");DispList(L);
	DestroyList(L);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?