数据结构之顺序表基本操作

/**
  ------------------------------------------------
| 0无值  |1  |…………|length-1  |…………|MaxSize-1  |
  ------------------------------------------------
*/

#include 
#define MaxSize 100
#define NULL 0

typedef char Element;
typedef struct{
	int length;
	Element data[MaxSize];//_从data[0]到data[MaxSize-1]
}Sqlist;

int init(Sqlist& L)
{//初始化
	L.length=0;
	return 0;
}

int getLength(Sqlist L)
{//获取长度
	return L.length;
}

int createSqlist(Sqlist &L,Element e[],int n)
{//创建初始元素
	if(nL.length+1||L.length==MaxSize-1)
	{//这里,空出data[0],以方便位置操作,即让data[1]到data[length]为存储空间
		//当到达上界或者不在存储范围内
		return 0;
	}
	for(int i=L.length;i>=p;--i)
		L.data[i+1]=L.data[i];
	//从末尾元素开始,到原始p位置,向右移动,
	//1并非从p开始因为会对原始元素覆盖
	//2 并不会产生越界问题,因为条件限制了length+1始终要=1;--i;)i=0
	++(L.length);//插入元素之后,顺序表长度随之增加,但要始终保证lengthL.length)
	{	
		return 0;
	}
	else
	{	
		e=L.data[p];
		//保护现场,别事后再赋值
		// 1  其实不要这句也可以,可万一以后这东西有用呢,
		//    要是再用本函数体内第一句声明的e要放在函数头的形参列表内

	/*	for(int i=L.length;i>=p;--i)
			L.data[i]=L.data[i+1];
		//这样,从p到length的都被L.data[length+1]覆盖掉,
		//而L.length+1并未对应元素,因而出现I烫烫烫烫烫
	*/
		for(int i=p;i
数据结构之顺序表基本操作_第1张图片

你可能感兴趣的:(数据结构之顺序表基本操作)