线性表之顺序表
大家好,多年媳妇熬成婆的我一开始被数据结构虐成狗,由于兴趣所在自学有一点心得,所以为还不知道的小白从开始的顺序表一直到排序算法,将持续更新为大家实现里面的代码,我在刚开始学的时候,百度发现很多都是伪代码,对新手很不友好,所以在此将提供每篇完整的代码!
第一部分-----顺序表
原理:顺序表其实就是一块连续的地址组成的空间,很简单。
程序实现---顺序表的创建,插入,删除,查找,重现
1:定义储存类型
#define MAXSIZE 50
typedef struct{
ElemType data[MAXSIZE];
int Length;
}SqList;
2:顺序表的创建
void CreatList(SqList &L){ //&L表示是传入表L的地址
int a;
printf("请输入要创建的顺序表大小:");
scanf("%d",&a);
for(int i=1;i<=a;i++){
printf("请输入第%i个元素:",i);
scanf("%d",&L.data[i-1]);
L.Length++;
}
printf("顺序表创建成功\n");
}
3.顺序表的插入
bool ListInsert(SqList &L,int i,ElemType e){
if(i<1||i>L.Length-1)
return false;
if(L.Length>=MaxSize)
return false;
for(int j=L.Length;j>=i;j--){
L.data[j]=L.data[j-1];
}
L.data[i-1]=e;
L.Length++;
return true;
}
4.顺序表的删除
bool ListDelete(SqList &L,int i){
int e;
if(i<1||i>L.Length)
return false;
e=L.data[i-1];
for(int j=i;j<L.Length;j++)
L.data[j-1]=L.data[j];
L.Length--;
return true;
}
5.顺序表的查找
int LocalElem(SqList &L,ElemType e){
int i;
for(i=0;i<L.Length;i++){
if(L.data[i]==e)
return i+1;
}
return 0;
}
6.顺序表的显示
void look(SqList L){
//printf("线性表中的元素为:\n");
for(int i=0;i<L.Length;i++){
printf("%6d",L.data[i]);
}
printf("\n");
}
基本的学习模块都在这,顺序表过于简单,不予细讲!
具体完整可运行代码在我的github账户上:GitHub - zhangqicheng/c-: 数据结构从0开始