数据结构::顺序表的基本操作
数据结构::顺序表的基本操作
#pragma GCC positionimize(3,"Otrst","inline") //#include "emplace.hpp" #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e6+10; const int INF=0x3f3f3f; const double pi = 3.141592653; const double E = 2.71828182846; const ll mod=1e9+7; const int M=1e3+5; const double eps=1e-8; #define ci(x) scanf("%d",&x) #define co(x) printf("%d\n",x) #define InitSize 10 class Seqlist{ private: int *data; int Maxsize; int lengh; public: void InitList(); void IncreaseSize(int num); bool ListInsert(int i,int n); bool ListDelet(int i,int &n); int GetElem(int i); int LocatElem(int e); }; void Seqlist::InitList() ///初始化顺序表 { data = (int *)malloc(InitSize*sizeof(int)); Maxsize = InitSize; lengh = 0; } /// 动态数组 void Seqlist::IncreaseSize(int num) ///增加顺序表长度 { int *p = data; data = (int *)malloc((Maxsize+num)*sizeof(int)); for(int i=1;i<=lengh;i++) { data[i]=p[i]; } Maxsize=Maxsize+num; free(p); } bool Seqlist::ListInsert(int i,int n) ///数据的插入 { if(i<1||i>=lengh+1) return false; if(lengh>=Maxsize) return false; for(int j=lengh;j>=i;j--) data[j]=data[j-1]; data[i-1]=n; lengh++; return true; } bool Seqlist::ListDelet(int i,int &n) ///删除第i个元素 { if(i<1||i>=lengh) return false; n=data[i-1]; for(int j=i;j<lengh;j++) { data[j-1]=data[j]; } lengh--; return false; } int Seqlist::GetElem(int i) ///获取第i个元素 { return data[i-1]; } int Seqlist::LocatElem(int e)///查找元素 { for(int i=0;i<lengh;i++) { if(data[i]==e) return i+1; } return 0; } int main() { Seqlist L; L.InitList(); //IncreaseSize(L,20); return 0; }
所有内容仅供自己学习记录使用
如有错误可直接指出