原创

数据结构(顺序表的插入、删除和判空)

上节我们学习了顺序表的定位,取元素操作,求长度。这节课我们学习插入数据,删

除数据。判断表空。。还有最重要的在main中使用。 上一节课的代码

/*--------------------------------------------------------------------*/
#include<stdio.h>
#include<string.h>
#define DATATYPE1 int
#define MAXSIZE 100
typedef struct
{
int id[MAXSIZE];
int len;
}Student,*PStudent;
void INITIATE(PStudent L)
{
L->len=0;
return;
}/*初始化线性表*/
int LENGTH(PStudent L)
{
return(L->len);
}
/*求线性表的长度*/
int GET(PStudent L,int i)
{
if(i<1 || i>L->len)
return(NULL);
else
return(L->id[i-1]);
}
/*取元素操作*/
int LOCATE(PStudent L,int x)
{
int k;
k=1;
while(k<=L->len&&L->id[k-1]!=x)
k++;
if(k<=L->len)
return(k);
else
return(0);
}
/*定位操作*/
/*-----------------------------------------------------------------*/

/-----删除操作。--------/

要删除一个表,我们必须要先将要删除的元素给用后面的覆盖了,一个一个覆盖。 首先定义一个函数

void DELETE(PStudent L,int i)/*这行的代码不用解释了吧????*/
{
int k;                /*定义一个变量K*/
if(i<1||i>L->len||L->len==0)/*判断I的位置*/
printf("error");/*提示错误*/
else
{
for(k=i+1;k<=L->len;K++)/*做循环,以len为结尾。遍历整个结构

体*/
L->id[k-2]=L->id[k-1];/*将后面向前面覆盖。*/
L->len--;/*长度-1*/
}
}
/*删除操作。*/
/*删除数据很简单,跟平时操作数组一样的。*/

下面分析插入操作

/*-----插入操作----*/
/*----首先定义一个基本的函数*/
void INSERT(PStudent L,int i,int b)/*形参是一个PStudent L指针类型,两个int

类型*/
{
int k;/*变量*/
if(i<1 ||i>L->len+1||L->len>=MAXSIZE)/*前几节的常量用到了。判断i的

范围*/
printf("error");/*不符合,提示错误*/
else
{
for(k=L->len;k>=i;k--)/*遍历结构体*/
L->id[k]=L->id[k-1];/*将要插入数据的k位置向后赋值,

要一个一个赋值。*/
L->id[i-1]=b;/*将B赋值过来*/
L->len++;/*长度加1*/
}
}
/*OK*/
/*判断表空*/
/*同理首先定义一个函数*/
int EMPTY(PStudent L)
{
if(L->len==0)/*长度如果是0的话就是表空了。然后返回一个整形1*/
return(1);
else
return(0);/*表不是空就返回0*/
}
/*----------------------*/
/*--------main函数体--------*/
main()
{
PStudent *L;/*跟我们平时定义int k什么的这样的一样,我们定义一个结构

体。*/
int i,j;/*定义两个变量。*/
INITIATE(L);/*初始化操作。将定义的结构体作为参数带进去*/
printf("初始化完毕");
printf("输入数据-99结束");
scanf("%d",&i);/*将值赋给I*/
j=1;
while(i!=-99)
{
INSERT(L,j,i);/*从第一个元素开始插入*/
j++;
scanf("%d",&i);
}
printf("------------------------------n");
DELETE(L,1);/*测试一个删除数据*/
printf("the len is :%dn",LENGTH(L));/*取结构体长度*/
printf("No.1 is :%dn",GET(L,1));/*取结构体的元素*/
printf("--------------------------n");
}

我们顺序表的所有内容都是这些了,完毕了。!

本文来自:数据结构(顺序表的插入、删除和判空) -小码农,转载请保留本条链接,感谢!

温馨提示:
本文最后更新于 2020年08月19日,已超过 1,555 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录