//01-复杂度3 二分查找
Position BinarySearch( List L, ElementType X){
int start, end, mid, p;
int len =L-> Last;
start =1;
end = len;
p =0;while(start <= end){
mid =(start + end)/2;if(L-> Data[mid]>X){
end = mid -1;}elseif(L-> Data[mid]<X){
start = mid +1;}else{
p = mid;break;}}if(p ==0){return NotFound;}return p;}
//02-线性结构1 两个有序链表序列的合并
List Merge( List L1, List L2){
List L,L_1,L_2, s;L_1=L1->Next;L_2=L2->Next;
s =(List)malloc(sizeof(struct Node));L= s;while(L_1&&L_2){if(L_1->Data <L_2->Data){L->Next =L_1;L=L->Next;L_1=L_1->Next;}else{L->Next =L_2;L=L->Next;L_2=L_2->Next;}}if(L_1==NULL){L->Next =L_2;}if(L_2==NULL){L->Next =L_1;}L1->Next =NULL;L2->Next =NULL;return s;}