写在前面的话:不知道有没有小伙伴们和小编一样,刚学习线性表时一头雾水,不知该从何下手,这篇文章,我们将从顺序表开始,理解顺序表的创建、初始化和一些基本操作吧!
说明:小编也是刚学习数据结构这门课程,如有错误,请联系小编,小编及时改正。
具体思路:
1.创建结构体(包含顺序表的大小及表长元素)
要想创建一个顺序表,首先要定义一个结构体,该结构体内定义了顺序表的存储空间及表长元素。
2.初始化顺序表
创建完结构体后,就相当于一个顺序表的基本结构有了,接下来我们要对顺序表进行初始化,将顺序表在计算机中具体化。
在经过以上步骤后,一个顺序表就基本建好了,接下来我们要对顺序表增加一些基本功能。
3.插入元素
4.查找元素
5.删除元素
6.输出(打印)顺序表
最后要将顺序表中的元素输出出来,否则将无法在控制台看到顺序表中的结果。
代码实现:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
//定义结构体
typedef struct {
int data[MAXSIZE];
int length;
}Seqlist;
//初始化顺序表
void initSqList(Seqlist *listpr){
listpr->length=0;
}
//插入
void InsertSqList(Seqlist *listpr,int elem){
if (listpr->length>=MAXSIZE){
printf("顺序表已满,无法插入元素\n");
return;
} else{
listpr->data[listpr->length]=elem;
++listpr->length;
}
}
//查找
void SearchSqlist(Seqlist *listpr,int elem){
for (int i=0;i<listpr->length;i++){
if (elem==listpr->data[i]) {
printf("元素 %d 的下标为%d\n", elem, i);
return ;
}
}
printf("查找失败,没有找到元素%d\n", elem);
}
//删除
void DeletSqlist(Seqlist *listpr,int index){
if (index<0 || index>listpr->length) {
printf("删除失败,没有找到该元素");
return;
}
int k;
for (k=index;k<listpr->length;k++){
listpr->data[k]=listpr->data[k+1];
}
--listpr->length;
}
//打印顺序表
void PrintSqlist(Seqlist *listpr){
int m;
for (m=0;m<listpr->length;m++){
printf("顺序表中的元素为:%d,下标为%d",listpr->data[m],m);
printf("\n");
}
}
int main(){
Seqlist list;
initSqList(&list);
InsertSqList(&list,10);
InsertSqList(&list,80);
PrintSqlist(&list);
}