今日复习了线性表中顺序表的相关操作
初始化:
void InitList(SqList &L){ //申请存储空间 L.data = (int*)malloc(InitSize*sizeof(int)); L.length = 0; L.MaxSize = InitSize; }
插入:
bool ListInsert(SqList &L,int i,int e){ if(i<1 || i<L.length+1) //判断i的范围是否有效 return false; if(L.length>= MaxSize) //当前存储空间已满,不能插入 return false; for(int j=L.length; j>=i ; j--)//将第i个以及之后的元素后移 L.data[j] = L.data[j-1]; L.data[i-1] = e; L.length++; return true; }
删除:
bool ListDelete(SqList &L,int i ,int &e){ if(i<1 || i>L.length) //判断i的范围是否合理 return false; e = L.data[i-1]; //将被删除的值赋给e for(int j=i-1 ; j<L.length ;j++ ){ //元素前移 L.data[j] = L.data[j+1]; } L.length--; return true; }
查找分为两种:按值查找和按位查找
按值查找:
int LocateElem(SqList L,int e){ for(int i=0;i<L.length;i++) if(L.data[i]==e) return i+1; return 0; //查找失败 }
按位查找:
int GetElem(SqList L,int i){ return L.data[i-1]; }

posted on 2025-01-10 18:23  Swishy  阅读(12)  评论(0)    收藏  举报