其他分享
首页 > 其他分享> > 顺序表

顺序表

作者:互联网

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