#include <stdio.h>
#include <stdlib.h>
#define DATATYPE int
#define MAXSIZE 100
typedef struct
{
DATATYPE data[MAXSIZE];
int len;
}SEQUENLIST;
void INITATE(SEQUENLIST *L)//初始化线性表,参数L是表的名字
{
L->len=0;
}
void CREAT(SEQUENLIST *L,int n)//向线性表里添加初始元素 ,L是表名,n是想要创建的初始元素的个数
{
int i=0,c=0;
printf("请从小到大输入%d个数:",n);
for(i=0;i<n;i++)
{
scanf("%d",&c);
L->data[i]=c;
L->len++;
}
}
void INSERT(SEQUENLIST *L,int i,DATATYPE b) //插入操作,L是表名,i是即将插入的位置的下标,b是插入的元素内容
{
int k;
if(i<1||i>L->len+1||L->len>=MAXSIZE)
{
printf("error");
}
else
{
for(k=L->len;k>=i;k--)
{
L->data[k]=L->data[k-1];
}
L->data[i-1]=b;
L->len++;
}
}
int main(int argc, char *argv[]) {
int a,b,n,i;
SEQUENLIST k;// 创建一个线性表K
SEQUENLIST *List=&k;//让一个指针List指向线性表K
INITATE(List);//初始化线性表
printf("请输入你要创建的元素个数");
scanf("%d",&n);
CREAT(List,n);//向线性表里添加初始值
printf("添加前的值:");
for(i=0;i<List->len;i++){//通过循环输出添加前的值
printf("%4d",List->data[i]);
}
printf("\n请输入你想插入的位置:");
scanf("%d",&a);
printf("请输入你想插入的内容:");
scanf("%d",&b);
INSERT(List,a,b);//向线性表位置为a的位置添加b
printf("添加后的值:");
for(i=0;i<List->len;i++){//通过循环输出添加后的值
printf("%4d",List->data[i]);
}
return 0;
}
(数据结构)在顺序表中实现插入操作
最新推荐文章于 2023-07-09 20:46:35 发布