📄 array_common.c
字号:
/**********************************************************************************************************************************/#include "array_common.h"/**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************//*以下为各函数的实现*//**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************/struct array_init array_Create(LONGINT data_size,LONGINT data_cable){ struct array_init array_build; DATA_TYPE *data_pointer=(DATA_TYPE*)malloc(sizeof(DATA_TYPE)*data_size);/*建立空间*/ /*初始化*/ array_build.array_pointer=data_pointer; array_build.array_space=data_size; array_build.array_point=0; array_build.array_length=0; array_build.array_cable=data_cable; return array_build;};struct array_cur array_Curcreate(struct array_init* array_point){ struct array_cur new_cur; new_cur.array_name=array_point; new_cur.array_point=0; return new_cur;};LONGINT array_Size(struct array_cur* cur_name){ return cur_name->array_name->array_space;};LONGINT array_Length(struct array_cur* cur_name){ return cur_name->array_name->array_length;};SHORTINT array_Eof(struct array_cur* cur_name){ if(cur_name->array_name->array_point>=(cur_name->array_name->array_length-1))return 1; return 0;};void array_Expand(struct array_cur* cur_name){ LONGINT newsize; DATA_TYPE *data_pointer; LONGINT i=0; newsize=cur_name->array_name->array_space+cur_name->array_name->array_cable; data_pointer=(DATA_TYPE*)malloc(sizeof(DATA_TYPE)*newsize); if(data_pointer==NULL)return; for(;;) { data_pointer[i]=(cur_name->array_name->array_pointer[i]); i++; if(i>(cur_name->array_name->array_length-1))break; }; cur_name->array_name->array_space=newsize; free(cur_name->array_name->array_pointer); cur_name->array_name->array_pointer=data_pointer;};LONGINT array_Append(DATA_TYPE indata,struct array_cur* cur_name){ if(cur_name->array_name->array_length>=cur_name->array_name->array_space)array_Expand(cur_name); if(cur_name->array_name->array_length==0) { cur_name->array_name->array_pointer[0]=indata; cur_name->array_name->array_length++; return cur_name->array_name->array_space; }; cur_name->array_name->array_length++; array_Last(cur_name); array_Set(indata,cur_name); return cur_name->array_name->array_space;};LONGINT array_Insert(DATA_TYPE indata,struct array_cur* cur_name){ LONGINT i=cur_name->array_name->array_length-1; if(cur_name->array_name->array_length>=cur_name->array_name->array_space)array_Expand(cur_name); for(;;) { if(i<cur_name->array_name->array_point)break; cur_name->array_name->array_pointer[i+1]=cur_name->array_name->array_pointer[i]; i--; }; array_Set(indata,cur_name); cur_name->array_name->array_length++; return cur_name->array_name->array_space; };LONGINT array_Remove(struct array_cur* cur_name){ LONGINT i; LONGINT now_side; i=cur_name->array_name->array_point; now_side=i; for(;;) { if(i>=cur_name->array_name->array_length)break; cur_name->array_name->array_pointer[i]=cur_name->array_name->array_pointer[i+1]; i++; }; cur_name->array_name->array_length--; if(cur_name->array_name->array_point==0) { array_Last(cur_name); } else { array_Goto((now_side-1),cur_name); }; return cur_name->array_name->array_space;};void array_First(struct array_cur* cur_name){ cur_name->array_name->array_point=0;};void array_Next(struct array_cur* cur_name){ if(cur_name->array_name->array_point>=(cur_name->array_name->array_length))return; cur_name->array_name->array_point++;};void array_Prev(struct array_cur* cur_name){ if(cur_name->array_name->array_point==0)return; cur_name->array_name->array_point--;};void array_Last(struct array_cur* cur_name){ cur_name->array_name->array_point=cur_name->array_name->array_length-1;};void array_Goto(LONGINT array_location,struct array_cur* cur_name){ if(array_location<0||array_location>=cur_name->array_name->array_length)return; cur_name->array_name->array_point=array_location;};DATA_TYPE array_Get(struct array_cur* cur_name){ return cur_name->array_name->array_pointer[cur_name->array_name->array_point];};LONGINT array_Getlocal(struct array_cur* cur_name){ return cur_name->array_name->array_point;};void array_Set(DATA_TYPE indata,struct array_cur* cur_name){ cur_name->array_name->array_pointer[cur_name->array_name->array_point]=indata;};void array_Drop(struct array_cur* cur_name){ free(cur_name->array_name->array_pointer);};/**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************//*调试用*//**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************//**********************************************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -