假设线性表采用顺序存储结构 其类型定义如下: define ListSize 100 typedef struct{ int data
假设线性表采用顺序存储结构,其类型定义如下:
define ListSize 100
typedef struct{
int data[ListSize];
int length;
}SeqList,*Table;
编写算法,将顺序表L中所有值为奇数的元素调整到表的前端。
请帮忙给出正确答案和分析,谢谢!
-
参考答案一: void f34(Table L) { int ijt; i=0; j=L—>length-1; while(i<j) { while(i<j&&L—>data[i]%2) i++; while(i<j&&L—>data[j]%2==0) j--; if(i<j) { t=L—>data[i]; L—>data[i]=L—>data[j]; L—>data[j]=t; i++; j--; } } } 参考答案二: void f34(SeqList*L) { int ij=0.t; for(i=0;i<L—>length;i++) if(L—>data[i]%2)/*奇数*/ { if(i!=j) { t=L—>data[i]; L—>data[i]=L—>data[j]; L—>data[j]=t; } j++; } }
参考答案一: void f34(Table L) { int i,j,t; i=0; j=L—>length-1; while(i<j) { while(i<j&&L—>data[i]%2) i++; while(i<j&&L—>data[j]%2==0) j--; if(i<j) { t=L—>data[i]; L—>data[i]=L—>data[j]; L—>data[j]=t; i++; j--; } } } 参考答案二: void f34(SeqList*L) { int i,j=0.t; for(i=0;i<L—>length;i++) if(L—>data[i]%2)/*奇数*/ { if(i!=j) { t=L—>data[i]; L—>data[i]=L—>data[j]; L—>data[j]=t; } j++; } }
