在一个一维数组中将所有的元素循环左移p(0<p<n)个位置
思想:ab=>ba,aˉ1bˉ1=(ba)ˉ1
#include <stdio.h>void Reverse(int a,int b,int R[10]){ for(int i=0;i<(b-a+1)/2;i++){ int temp; temp=R[a+i]; R[a+i]=R[a+(b-a)-i]; R[a+(b-a)-i]=temp; }}//对给定数组的特定范围进行逆置void main(){ int R[10]; for(int i=0;i<10;i++){ R[i]=i+1; } Reverse(0,3,R);//逆置前一部分 Reverse(4,9,R);//逆置后一部分 Reverse(0,9,R);//最后总体逆置 for(int i=0;i<10;i++){ printf("%d ",R[i]); }}
将两个顺序表按照大小重新组成一个新的顺序表
void MergeList(SqList *L1,SqList *L2){ SqList L3; InitList(&L3); ElemType *p1=L1->data; ElemType *p2=L2->data; for(int i=0;i<L1->length+L2->length;i++){ if(*p1<*p2){ ListInsert(&L3,i+1,*p1); p1++; } else{ ListInsert(&L3,i+1,*p2); p2++; } } PrintList(&L3);}
转载于:https://www.cnblogs.com/Yshun/p/11128770.html