首页 > 其他分享 >顺序表的基本操作_F_hawk189_新浪博客

顺序表的基本操作_F_hawk189_新浪博客

时间:2022-11-02 16:08:12浏览次数:77  
标签:int hawk189 博客 ++ length printf 基本操作 data Seqlist

程序要求:建立一个顺序表,用户通过输入个数和一组非递减顺序的数,即顺序表按照非递减顺序排列,对顺序表进行建立,删除指定位置的数,查找指定位置的数,插入一个数字功能。程序代码如下:


#include

#include

#define listsize 100


typedef struct{

int data[listsize];

int length;

}Seqlist;


//新建顺序表


void createlist(Seqlist *l,int n)

{

int i;

printf("请输入顺序表元素:\n");

for(i=0;i

{

scanf("%d",&l->data[i]);

l->length=n;

}

}


//输出顺序表




void printlist(Seqlist *l,int n)

{

int i;

printf("顺序表为:");

for(i=0;i

{

printf("%d ",l->data[i]);

}

}


//查找元素


void locateElem(Seqlist *l,int n)

{

int i=1,*p;

p=l->data;

printf("\n请输入要查找的元素n:");

scanf("%d",&n);

while(i<=l->length&&(*p++!=n)) ++i;

if(i<=l->length)

printf("要查找的数的位置为:%d",i);

}


//插入元素


void listinsert(Seqlist *l,int i,int n)

{

int *q,*p;

printf("\n请输入要插入的数:");

scanf("%d",&n);


if(l->length==0)

{

l->data[0]=n;

++l->length;



}

q=&(l->data[0]);

while((*q<=n)&&(q<=&(l->data[l->length-1])))

{

++q;

}

++l->length;

for(p=&(l->data[l->length-1]);p>=q;--p)

{

*(p+1)=*p;

*p=n;

}


printf("输出新表:\n");

for(i=0;ilength;i++)

{

printf("%d ",l->data[i]);

}

}


//删除元素


void listdelete(Seqlist *l,int i,int n)

{

int *p,*q;

printf("\n请输入要删除的数的位置:");

scanf("%d",&i);



if(i<1||i>l->length)

printf("删除元素失败!");



p=&l->data[i-1];

n=*p;

q=l->data+l->length-1;

for(++p;p<=q;++p)

{

*(p-1)=*p;

--l->length;


}



for(i=0;ilength+1;i++)

{

printf("%d ",l->data[i]);

}

}

void main()


{
int n;
int i=0;
Seqlist l;
l.length=0;

printf("请输入线性表长度:");
scanf("%d",&n);
createlist(&l,n);
printlist(&l,n);
locateElem(&l,n);
listinsert(&l,i,n);
listdelete(&l,i,n);
printf("\n");
}

标签:int,hawk189,博客,++,length,printf,基本操作,data,Seqlist
From: https://blog.51cto.com/u_15858333/5817593

相关文章