www.pudn.com > huffman.rar > Ulti.c


#include "Global.h" 
#include "MyAssert.h" 
#include "Ulti.h" 
#include  
#include  
#include  
#include  
void swap(Type* a,Type* b) 
{ 
	Type tmpV; 
	assertF(a!=NULL,"in swap,a is NULL"); 
	assertF(b!=NULL,"in swap,b is NULL"); 
	 
	tmpV=*a; 
	*a=*b; 
	*b=tmpV; 
} 
 
/*swap array data*/ 
void swapArrData(Type* arr,int pos1,int pos2) 
{ 
	Type tmpData; 
	assertF(arr!=NULL,"In swapArrData,arr is NULL\n"); 
	tmpData=arr[pos1]; 
	arr[pos1]=arr[pos2]; 
	arr[pos2]=tmpData; 
} 
 
void outputListArrFloat(Type* arr,long startPos,long len,FILE* outputFile) 
{ 
	long i=0;/*iterator num*/ 
	assertF(len-startPos>0,"in outputListArrFloat len-startPos<=0\n"); 
	assertF(arr!=NULL,"In outputListArrFloat,arr is NULL\n"); 
	assertF(outputFile!=NULL,"in outputListArrFloat ,outputFile is NULL\n"); 
	for(i=startPos;i0,"in outputListArrFloat len-startPos<=0\n"); 
	assertF(arr!=NULL,"In outputListArrFloat,arr is NULL\n"); 
	assertF(outputFile!=NULL,"in outputListArrFloat ,outputFile is NULL\n"); 
	for(i=startPos;i0,"in outputListArrFloat2 len-startPos<=0\n"); 
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n"); 
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n"); 
	/*open file*/ 
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n"); 
	for(i=startPos;i0,"in outputListArrFloat2 len-startPos<=0\n"); 
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n"); 
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n"); 
	/*open file*/ 
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n"); 
	for(i=startPos;i0,"in outputListArrFloat2 len-startPos<=0\n"); 
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n"); 
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n"); 
	/*open file*/ 
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n"); 
	fprintf(outputFile,"arr=["); 
	for(i=startPos;i0,"in outputListArrFloat2 len-startPos<=0\n"); 
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n"); 
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n"); 
	/*open file*/ 
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n"); 
	fprintf(outputFile,"arr=["); 
	for(i=startPos;i10) 
					{ 
						printf("\n"); 
						pos=0; 
					} 
				} 
			printf("%d;\n",arr[i][j]); 
			pos=0;	 
		} 
	printf("\n"); 
} 
 
void show2DArrFloat(Type** arr,int col,int row) 
{ 
	int i=0,j=0;/*iterator value*/ 
	int pos=0;/*output control*/ 
	assertF(arr!=NULL,"In showArr,arr is NULL\n"); 
	for(i=0;i10) 
					{ 
						printf("\n"); 
						pos=0; 
					} 
				} 
			printf("%f;\n",arr[i][j]); 
			pos=0;	 
		} 
	printf("\n"); 
} 
void showArrListInt(Type* arr,int startPos,int len) 
{ 
	int i=0;/*iterator num*/ 
	assertF(len-startPos>0,"in sumArr len-startPos<=0\n"); 
	assertF(arr!=NULL,"In showArrListFloat,arr is NULL\n"); 
	for(i=startPos;i0,"in sumArr len-startPos<=0\n"); 
	assertF(arr!=NULL,"In showArrListFloat,arr is NULL\n"); 
	for(i=startPos;imaxData)maxData=inList[i]; 
	return maxData; 
} 
 
Type maxAbsValInList(Type* inList,int len) 
{ 
	int i;/*iterator num*/ 
	Type maxData; 
	assertF(inList!=NULL,"in maxValInList,inList is NULL\n"); 
	maxData=(Type)fabs(inList[0]); 
	for(i=1;imaxData)maxData=(Type)fabs(inList[i]); 
	return maxData; 
} 
 
int listNotZero(Type* inList,int len) 
{ 
	int i=0;/*iterator*/ 
	int flag; 
	float e=(float)0.00001;/*the precise controller*/ 
	Type sum=0; 
	 
	assertF(inList!=NULL,"in list not zero,in list is null\n"); 
	 
	sum=0; 
	for(i=0;iupLimit); 
	 
	return tmpData; 
} 
 
/*ulti file operation*/ 
	extern FILE* createFile(char mode,char* fileName) 
	{ 
		FILE* mFile; 
		 
		assertF(fileName!=NULL,"in createFile,listFileName is null\n"); 
		assertF(mode=='w'||mode=='r',"in create,mode pass in is error\n"); 
		if(mode=='w') 
			assertF((mFile=fopen(fileName,"wb"))!=NULL,"in create file,output file open error\n"); 
		else  
			assertF((mFile=fopen(fileName,"rb"))!=NULL,"in create file,output file open error\n"); 
		 
		return mFile; 
	}