顺序表
作者:互联网
1.顺序表动态分配
#include <iostream> // 输出语句头文件
#include <stdlib.h> //malloc函数头文件
# define InitSize 50
typedef int Elemtype;
typedef struct{
Elemtype *data; //定义一个int(或其他)类型的指针data
int length,MaxSize;//定义长度,最大数量
}SqList;
int main(){
SqList L;
L.data=(Elemtype *)malloc(sizeof(Elemtype)*InitSize);
//在动态内存区域申请一块Elemtype类型的,
//长度为数据类型Elemtype*InitSize的连续空间,
//并返回第一个字节地址
L.data[0]=1206;
L.length=1;
L.MaxSize=InitSize;
printf("%d %d %d",L.data[0],L.MaxSize,L.length);
return 0;
}
2、顺序表基本操作—初始化操作
#include <iostream>
#include <stdlib.h>
#define OK 1
#define OVERFLOW 0
#define InitSize 10
typedef int Elemtype;
typedef struct{
Elemtype *data;
int length,MaxSize;
}SqList;
//构造一个空的线性表L
int InitSqList(SqList &L){
L.data=(Elemtype *)malloc(sizeof(Elemtype)*InitSize);
if(!L.data)//判断是否分配失败
exit(OVERFLOW);//此句的意思是如果在malloc分配后,仍然为空,则分配失败。
//真正初始化操作
L.length=0;
L.MaxSize=InitSize;
return OK;
}
int main()
{
SqList L;
InitSqList(L);
}
2、顺序表基本操作—插入操作
【在顺序表L的第i(1<=I<=L.length+1)个位置插入新元素e 】
注意:当插入的位置为第i个节点时,需要移动n-i+1个元素
算法思想:
1.判断插入位置i是否合法
2.判断顺序表的存储空间是否已满
3.将第n至第i位的元素依次向后移动一个位置,空出第i个位置
4.将要插入的新元素e放入第i个位置
5.表长加1,插入成功返回OK
标签:顺序,int,Elemtype,InitSize,MaxSize,SqList,data 来源: https://www.cnblogs.com/cecilia-wu/p/16443530.html