顺序表的元素创建、插⼊、删除、查等操作(C语⾔实现)⽤到的头⽂件和结构体
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1024
typedef int elemtype;
typedef struct
{
elemtype data[MAXSIZE];
elemtype last;
}SqList;
顺序表的初始化`
SqList *init_SequenList()
{
SqList *L;//定义顺序表的指针变量
L =(SqList *)malloc(sizeof(SqList));
if(NULL== L){
return0;
}
L -> last =-1;//设置顺序表的长度last为-1表⽰顺序表为空
return L;//返回顺序表的⾸地址
}
插⼊数据
elemtype insert_SequenList(SqList *L,elemtype x,int i)
{
//L顺序表的⾸地址,x插⼊的元素,插⼊的位置
int j;
if(MAXSIZE -1== L -> last){//顺序表满了
return0;//插⼊失败
}
if(i <1|| i > L -> last +2){//插⼊的位置⾮法
return0;
}
if(i == L -> last +2){//如果是在表尾插⼊的话
L -> data[i -1]= x;
L -> last ++;
return1;
}
for(j = L -> last;j >= i -1;j --){
L -> data[j +1]= L -> data[j];//将第i个位置腾出来
}
L -> data[i -1]= x;//将x元素插⼊第i个位置上
L -> last ++;
return1;//插⼊成功
}
删除元素
if(-1== L -> last){
//printf("您可真调⽪,这个表是空表哦\n");
return0;
}
if(i <=0|| i > L -> last +1){
return0;//删除失败
}
for(j = i -1;j <= L -> last -1;j ++){
L -> data[j]= L -> data[j +1];//将第i个元素覆盖
}
L -> last --;
return1;//删除成功
}
遍历顺序表并输出
elemtype delete_SequenList(SqList *L,int i)
{
int j;
if(-1== L -> last){
//printf("您可真调⽪,这个表是空表哦\n");
return0;
}
if(i <=0|| i > L -> last +1){
return0;//删除失败
}
for(j = i -1;j <= L -> last -1;j ++){
L -> data[j]= L -> data[j +1];//将第i个元素覆盖
}
L -> last --;
return1;//删除成功
}
//遍历输出顺序表
void print(SqList *L)
{
int j;
if(-1== L -> last){
printf("您真调⽪,这个表是空表");
return;
}
for(j =0;j <= L -> last;j ++){
printf("第%d个元素是:%d\n",j +1,L -> data[j]);
}
}
修改
elemtype revise_SequenList(SqList *L,int i,elemtype x) {
if(i <1|| i >= L -> last +2){
return0;
}
L -> data[i -1]= x;
return1;//修改成功
}
for(j =0;j <= L -> last;j ++){
if(x == L -> data[j]){//查成功
return j +1;//返回j + 1
}
}
return0;//查失败
}
下⾯是主函数
void main()
{
int i,j,num,x;
SqList *L;
L =init_SequenList();
while(1){
printf("1、插⼊\n");
printf("2、删除\n");
printf("3、查\n");
printf("4、输出\n");
printf("5、修改\n");
printf("6、退出\n");
printf("请输⼊您对线性表操作的序号\n"); scanf("%d",&num);
switch(num){
case1:
{
printf("请输⼊您想插⼊元素的位置!\n");
scanf("%d",&i);
printf("请输⼊您想插⼊的元素!\n");
scanf("%d",&x);
j =insert_SequenList(L,x,i);
if(0== j){
printf("插⼊失败\n");
break;
}
printf("插⼊成功!\n");
break;
}
case2:
{
printf("请输⼊您想删除的位置!\n");
c语言struct头文件scanf("%d",&i);
j =delete_SequenList(L,i);
if(0== j){
printf("删除失败\n");
break;
}
printf("删除成功!\n");
break;
}
case3:
{
printf("请输⼊您想查元素\n");
scanf("%d",&x);
j =search_SequenList(L,x);
if(j ==0){
printf("查失败!\n");
break;
}
printf("查成功!\n");
printf("该元素在%d的位置上\n",j);
break;
}
case4:
{
print(L);
break;
}
case5:
{
printf("请输⼊您想修改元素的位置!\n");
scanf("%d",&i);
printf("请输⼊您想修改的元素!\n");
scanf("%d",&x);
j =revise_SequenList(L,i,x);
if(0== j){
printf("修改失败!\n");
break;
}
printf("修改成功!\n");
break;
}
case6:
{
return;
}
}
}
}
各位在参考的代码时候,有不懂的地⽅可以在下⾯留⾔哦如果对您有帮助,点个赞再⾛叭

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。