1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > c语言创建空顺序表的程序 用C语言编写一个完整的程序 实现顺序表的建立 插入 删除

c语言创建空顺序表的程序 用C语言编写一个完整的程序 实现顺序表的建立 插入 删除

时间:2022-07-16 18:56:37

相关推荐

c语言创建空顺序表的程序 用C语言编写一个完整的程序 实现顺序表的建立 插入 删除

#include

#include

#define maxsize 30

typedef int datatype;

typedef struct seqlist{

datatype data[maxsize];

int n;

}seqlist;

struct seqlist L;

//顺序表初始化1-20

void Stu() {

printf("\n顺序表正在初始化...\n\n顺序表能储存的数据最多为30个\n\n\n");

int temp=0,n=0;

for(temp=0;temp<20;temp++){

L.data[temp]=temp+1;

n++;

}//自定义1-20的数据方便检测程序

L.n=n;//改变顺序表长度

};

//输出顺序表当前储存的数据

void Show(){

int temp;

printf("\n\n顺序表当前储存的数据:\n ");

for(temp=0;temp

printf(" %d ",L.data[temp]);

}

printf("\n");

}

//在顺序表中输入数据

void inList(){

int newn,temp;

reset1:

printf("\n请输入需要储存的数据个数:\n");

scanf("%d",&newn);

if(newn>maxsize){

printf("\n顺序表最多储存%d个数据!\n",maxsize);

goto reset1;

}

printf("\n请输入你需要储存的数据:\n");

for(temp=0;temp

scanf("%d",&L.data[temp]);

}//输入\更改数据

for(temp=newn;temp

L.data[temp]=0;

}//将不需要储存的数据置零

L.n=newn;//更新顺序表长度

printf("\n你插入的数据为:");

for(temp=0;temp

printf("%d\t",L.data[temp]);

}

}

//在顺序表中查找某一个逻辑位置的数据并输出

void search1(){

int x;

reset2://判断输入的逻辑位置

printf("\n请输入你需要在顺序表中查找的逻辑位置:\n");

scanf("%d",&x);

if(x<1||x>maxsize){

printf("\n逻辑位置最低为1,最高为30!\n");

goto reset2;

}

int temp;

for(temp=0;temp

if(x==(temp+1)){

printf("\n顺序表中这个位置的数据为%d\n",L.data[temp]);

return ;

}

}

printf("顺序表中的这个逻辑位置未储存数据!\n");

}

//在顺序表中查找数据输入它的逻辑位置

void search2(){

int x;

printf("\n请输入你需要在顺序表中查找的数据:\n");

scanf("%d",&x);

int temp;

for(temp=0;temp

if(L.data[temp]==x){

printf("\n查找成功!\n它在顺序表中的逻辑位置为%d\n",temp+1);

return ;

}

}

printf("在顺序表中未找到这个数据!");

}

//在顺序表中插入数据

void insert(){

if(L.n==maxsize){//表满则无法插入

printf("当前顺序表已储存了30个数据,无法插入!\n");

return;

}

if(L.n==0){//表空则无法插入

printf("当前顺序表没有储存数据,无法插入!\n");

return;

}

int p,x,temp1;

reset3://判断输入的逻辑位置

printf("\n请输入你在顺序表中需要插入数据的逻辑位置:\n");

scanf("%d",&p);

if(p<1||p>L.n){//插入的逻辑位置不能是顺序表的前驱和最后的后继

printf("\n插入的逻辑位置最小为1,最高为%d!\n",L.n);

goto reset3;

}

printf("\n请输入该数据:\n");//提示输入并输入

scanf("%d",&x);

for(temp1=L.n;temp1>=p;temp1--){

L.data[temp1+1]=L.data[temp1];

}

L.data[p]=x;

L.n++;

printf("\n插入数据后变为:");

for(temp1=0;temp1

printf("%d\t",L.data[temp1]);

}

}

//删除顺序表中的某个位置的数据

int deletel(){

if(L.n==0){//表空无法删除

printf("当前顺序表没有储存数据,无法删除!\n");

return;

}

int p,temp;

reset4:

printf("\n请输入你在顺序表中需要删除的数据的逻辑位置:\n");

scanf("%d",&p);

if(p<1||p>L.n){

printf("该逻辑位置没有储存数据!");

goto reset4;

}

L.n--;

for(temp=p;temp<=L.n;temp++){

L.data[temp-1]=L.data[temp];

}

printf("删除数据后变为:");

for(temp=0;temp

printf("%d\t",L.data[temp]);

}

}

main(){

Stu();//顺序表初始化1-20

inList();//输出顺序表当前储存的数据

search1();//在顺序表中查找某一个逻辑位置的数据并输出

search2();//在顺序表中查找数据输入它的逻辑位置

insert();//在顺序表中插入数据,并输出

deletel();//删除顺序表中的某个位置的数据,并输出其他的元素

return 0;

}

c语言创建空顺序表的程序 用C语言编写一个完整的程序 实现顺序表的建立 插入 删除 输出等基本运算。...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。