线性表的相关操作

线性表的物理结构分为顺序存储和链式存储。以下分别是对顺序表和链表的相关操作的代码表示。

 顺序表

一、顺序表的分配 

 1.、顺序表的静态分配

//对顺序表的静态分配
#define MaxSize 100
typedef struct{
	int data[MaxSize];  //使用静态分配的方式
	int length;         //顺序表的当前长度
}SqList;
//初始化一个顺序表
void InitList(SqList &L){
	for(int i = 0; i < MaxSize; i++){
		//对数组中的所有元素进行初始化,虽然不初始化,编译器会自动给数据复制为0,
		//但是存在数组中的元素是系统留下来的脏数据
        //注意for循环里面是MaxSize而不是length
		L.data[i] = 0;
	}
	L.length = 0;
}
#include<iostream>
int main(){
    //在主函数里面检查顺序表是否初始化成功
	SqList L;
	InitList(L);
	for(int i = 0; i < MaxSize; i++){
	cout<<L.data[i];
	
	}
}

2.顺序表的动态分配

//对顺序表的动态分配
#define InitSize 100;  //默认的最大长度
typedef struct{
	int *data;   //指示动态分配数组的指针
	int MaxSize;   //顺序表的最大容量
	int length;    //顺序表的当前长度
}SqList;
//动态增加数组的长度
void IncreaseSize(SqList &L,int len){
    //这里用了引用传递参数
	int *p = L.data;    //建立一个指向数组的指针
	L.MaxSize = InitSize + len;
	L.data = (int *)malloc((L.MaxSize+len)*sizeof(int));  //L.data重新指向了一个新的地址
	for(int i = 0; i < L.length; i++){
		L.data[i] = p[i];  //将数据复制到新的区域
	}
free(q);  //释放原来的内存空间
}

 

二、顺序表的基本操作--插入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值