#include<iostream> using namespace std; #define MaxSize 10 //定义最大长度 typedef int ElemType; //静态分配 //typedef struct { // ElemType data[MaxSize]; //用静态的“数组”存放数据元素 // int length; //顺序表的当前长度 //}SqList; //动态分配 typedef struct { ElemType *data; int maxsize; int length; }SeqList; //void InitList(SqList &L)//初始化顺序表 //{ // for(int i=0;i<MaxSize;i++) // { // L.data[i]=0;//将所有数据元素设置为默认初始值 // L.length=0;//顺序表的初始长度为0 // } //} void InitSeqlist(SeqList &L) { L.data=new int[MaxSize]; L.data=(int *) malloc(MaxSize*sizeof(int)); L.length=0; L.maxsize=MaxSize; } void increaseList(SeqList &L,int len) { int *p=L.data; L.data=new int[MaxSize+len]; L.data=(int*) malloc((MaxSize+len)*sizeof (int)); for(int i=0;i<L.length;i++) { L.data[i]=p[i]; } L.maxsize=MaxSize+len; delete(p); } void printList(SeqList &L) { for(int i=0;i<L.length;i++) { cout<<L.data[i]<<" "; } } void insertList(SeqList &L,int i,int e) { if(i<0||i>L.length+1) { cout<<"位置不合法"; } else if(i>=MaxSize) { cout<<"顺序表已满"; } else{ for(int j=L.length;j>=i;j--) { L.data[j]=L.data[j-1]; } L.data[i-1]=e; L.length++; } } bool deleteList(SeqList &L,int i,int &e) { if(i<0||i>L.length) { return false; } e=L.data[i-1]; for(int j=i;j<L.length;j++) { L.data[j-1]=L.data[j]; } L.length--; return true; } int getElem(SeqList L,int i) { return L.data[i-1]; } int locateElem(SeqList L,int e) { for(int i=0;i<L.length;i++) { if(L.data[i]==e) { return i+1;//找到第i个元素 } } } int main() { SeqList L; InitSeqlist(L); increaseList(L,4); int length=5; L.length=length; int a[5]={3,6,1,2,7}; for(int i=0;i<L.maxsize;i++) { L.data[i]=a[i]; } //按位查找 cout<<getElem(L,2); //按值查找 cout<< locateElem(L,6); // 插入 insertList(L,2,5); // 删除 int e; // if(deleteList(L,8,e)) // { // cout<<"删除成功,删除的元素为"<<e<<" "; // } else{ // cout<<"删除位置不合法"; // } // SqList L;//声明一个顺序表 // InitList(L);//初始化顺序表 printList(L); return 0; }
05-02
05-14
298
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-20
394
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)