数据结构-顺序表

今天开始数据结构的学习。

一.顺序表的定义

#define InitSize 10 //默认的最大长度

typedef struct{

int *data;    //指示动态分配数组的指针

int MaxSize; //顺序表的最大容量

int length;   //顺序表的当前长度

}SeqList;

void InitList(SeqList &L){

L.data=(int *)malloc(InitSize*sizeof(int));//用malloc 函数申请一片连续的存储空间

L.length=0;

L.MaxSize=InitSize;

}

void IncreaseSize(SeqList  &L,int len){//增加动态数组的长度

int *p=L.data;

L.data=(int *)malloc((L.MaxSize+len)*sizeof(int));

for(int i=0;i<L.length;i++){

L.data[i]=p[i];                         //将数据复制到新区域

L.MaxSize=L.MaxSize+len;//顺序表的长度增加 len

free(p);                               //释放原来的内存空间

}

int main(){

SeqList L;                       //声明一个顺序表

InitList(L);                       //初始化顺序表

IncreaseSize(L,5);         //往顺序表中插入5个元素

return 0;

}

二.顺序表的插入

#define MaxSize 10      //定义最大长度

typedef struct{

int data[MaxSize];//用静态的数组存放数据元素

int length;

}SqList;

void ListInsert(SqList &L,int i,int e){  //基本操作:在L的位序i处插入元素e

for(int j=L.length;j>=i;j--){

L.data[j]=L.data[j-1];

}

L.data[i-1]=e;

L.length++;

}

int main(){

SqList L;//声明一个顺序表

InitList(L);//初始化顺序表

ListInsert(L,3,3);

return 0;

}

三.顺序表的查找

3.1按位查找

#define InitSize 10

typedef struct{

ElemType *data; //指示动态分配数组的指针

int MaxSize;//顺序表的最大容量

int length;//顺序表当前长度

}SeqList;

ElemType GetElem(SeqList L,int i){

return L.data[i-1];

}

3.2 按值查找

typedef struct{

ElemType *data; //指示动态分配数组的指针

int MaxSize;//顺序表的最大容量

int length;//顺序表当前长度

}SeqList;

int LocateElem(SeqList L,int e){

for(int i=0;i<L.length;i++){

if(L.data[i]==e)

return i+1;

}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值