#include
#include
#define Initsize 10//长度的初始定义
//#define Maxsize 10 //最大长度
#define addlen 5
int i;
//静态定义顺序表
//typedef struct{
// int date[Maxsize];//顺序表元素
// int length; //顺序表长度
//}SqList;
//动态定义顺序表
typedef struct{
int *data; //顺序表的数据元素
int length,Maxsize; //最大范围和长度
}SeqList;
//静态定义顺序表
//typedef strucst{
// int arr[Maxsize]
// int length;
//}SqList;
//初始化顺序表
void Initial(SeqList *p){
p->data = (int*)malloc(sizeof(int)*Initsize);//动态初始化最重要的一步,开辟连续的空间
p->Maxsize = Initsize;
p->length = 0;
}
//将顺序表加长 1、开辟空间 2、复制元素 3、最大长度加长 4、释放空间
void incrlen(SeqList *p,int len){
int *temp = p->data;
p->data = (int*)malloc(sizeof(int)*(p->length + len));
for(i = 0;i < p->length;i++){
p->data[i] = temp[i]; //元素的复制
}
p->Maxsize = p->Maxsize + len; //最大长度加长
}
//增加元素
int add(SeqList *p,int num){
int temp = p->length;
if(p->length < p->Maxsize){
p->data[temp-1] = num;
}
else{
incrlen(p,addlen);
p->data[temp] = num;
}
//增加一个元素,长度加一。
p->length = temp + 1;
return 1;
}
//删除元素
int delete(SeqList *p,int num,int *deletenum){
if(num<1||num>p->length){
printf("不在范围内\n");
}
*deletenum = p->data[num - 1];
for(i = num;ilength;i++){
p->data[i - 1] = p->data[i];
}
p->length--;
return 0;
}
//查找索引
int findnum(SeqList *p,int num){
for(i = 0;ilength;i++){
if(num == p->data[i]){
printf("您要找的值索引是%d\n",i);
return 1;
}
}
printf("没有找到\n");
return 0;
}
//插入元素 1、要插入的位置 2、后移 3、赋值
int Insert (SeqList *p,int index,int num){
if(index < 1){
printf("what the fucking doing?\n"); //加在几号位序
}
if(p->length>=p->Maxsize){
incrlen(p,5); //表的大小不够就加
}
for(i = p -> length;i >= index;i--){ //从后往前数,索引前的数都不需要动
p->data[i] = p->data[i - 1]; //前面的赋值给后面的
}
p->data[index - 1] = num; //将数组下标减一得到相应的位序,再赋值
p->length++;
return 1;
}
int main (){
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int deletenum = 0;
SeqList list; //创建一个顺序表
Initial(&list);
//输出顺序表的值
for(i = 0;i < Initsize ;i++){
list.data[i] = arr[i]; //list.data[i] 等价于 *(list.data + i)指针以int为单位偏移
list.length++;
printf("%d\n",list.data[i]);
}
printf("遍历数组---------------\n");
// incrlen(&list,addlen);
add(&list,11);
for(i = 0;i
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)