02动态顺序表[数据结构学习笔记]

02动态顺序表[数据结构学习笔记],第1张

02动态顺序表[数据结构学习笔记]

#文章为入门菜鸟在学习过程中的笔记,望各位大佬能帮忙指出错误。感激万分

#include
#include
#define TRUE 1
#define ERROR 1
#define FALSE 0
#define OK 1
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status; 

#define InitSize 5 	//初始化分配空间为5 
// 声明一个结构体表示顺序表 
typedef struct{
	int *data;
	int length;
	int listsize;
}SqList;

//	初始化顺序表 
Status InitList_sq(SqList &L){ 	//sq表示顺序表 
	L.data=(int*)malloc(sizeof(int)*InitSize);	//malloc分配空间 
	if(!L.data) exit(OVERFLOW);  //若存储成功则返回地址若失败则为0,所以失败后则报错
	L.length=0; 
	L.listsize=InitSize;
	return OK;
}

// 输出顺序表
void PrintList_sq(SqList &L){
	for(int i=0;iL.length+1) return ERROR;		//i合法值为 1 <= i >=L.length + 1 
	if(L.length>=L.listsize){
		int *newbase = (int*)realloc(L.data,sizeof(int)*(L.listsize+1));		//realloc为malloc分配的空间重新设置 
		if(!newbase) exit(OVERFLOW);
		L.data=newbase;
		L.listsize++;
	}
	for(int j=L.length-1;j>=i-1;j--){
		L.data[j+1]=L.data[j];
	}
	L.data[i-1]=e;
	L.length++;
	return OK;
}

//删除第i个位置的元素
Status ListDelete_sq(SqList &L,int i){
	if(i<1||i>L.length-1) exit(ERROR); 
	for(int j=i-1;jL.data[j]){
				int	temp=L.data[j];
				L.data[j]=L.data[i];
				L.data[i]=temp;
			}	
		}
	}
	return OK;
}  
 


int main(){
	SqList L;
	InitList_sq(L);
	printf("输入%d个数以空格隔开:n",L.listsize);
	for(int i=0;i					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5659565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存