顺序表刚刚听完动态静态存储以及插入,进行一些实践,今日24年8月5日,我在准备考西安交通大学软件专硕,科目代码为915。感觉我还挺喜欢写代码的,之前一直搞数学,现在每天时间多分给专业课,加油!!!
//静态存储
typedef struct{
int data[maxs];
int length;
//不太懂length的使用,每次输入数据就加一吗?如何加一?
//答:刚刚用文心一言明白了,添加数据用的也是函数,而非“=”
}sqlist;
void initlist(sqlist &l){
for(i=0;i<maxs;i++)
{
l.data[i]=0;
}
//for可以删除,为什么呢?可能与访问用length有关令length=0就可以了
l.length=0;
}
//动态存储
#include <stdio.h>
#define initsize 10
typedef struct{
int *data;
int maxsize;
int length;
}sqlist;
void initlist(sqlist &l){
l.data=(int*)malloc(initsize * sizeof(int));
//malloc分配一片空间,将地址指针传给l.data
l.length=0;
l.maxsize=initsize;
}
//重点来了,当空间满了以后的重新分配
void increase(sqlist &l,int len){
int *p=l.data;
//ldata与p都指向顺序表,下一步改变ldata只是改了指针,而没有改变顺序表的内容
l.data=(int*)malloc((maxsize+len) * sizeof(int));
for(i=0;i<l.length;i++){
l.data[i]=p[i];
}
l.maxsiaze=l.maxsize+len;
free(p);
}
顺序表的优点:随机访问、存储密度高(纯数据)
顺序表的缺点:拓展容量不方便、插入删除不方便